11 Alexandria - Release 3
メインページ への移動
以前のリリースでの新機能 への移動
RAD Studio 11.3 Athens の更新版がリリースされました(2023年2月27日)。
- バージョン 11 Alexandria での新機能についてはこちらから参照してください。
- 11 Alexandria - Release 1 での新機能については、こちらから参照してください。
- 11 Alexandria - Release 1.5 での新機能については、こちらから参照してください。
- 11 Alexandria - Release 2 での新機能については、こちらから参照してください。
11.3 における製品領域での主な強化
RAD Studio 11 Alexandria - Release 3(別名 11.3)がインストール可能となりました。 RAD Studio 11.3 では、ユーザーは新たなToolsAPI でコード エディタのルック&フィールをカスタマイズし、コード エディタで一致する単語を強調表示する機能が使用できます。さらに 11.3 では、モバイル プラットフォーム用の新しい生体認証コンポーネントが導入されており、また、Delphi LSP やさまざまな RAD Studio ライブラリにおいて、数多くの品質およびパフォーマンスの強化が行われています。
RAD Studio 11.3 は、特に品質向上にフォーカスを置いて進められました。 鍵となる品質向上の対象領域には、次があります:
- Delphi 支援機能(DelphiLSP)
- Subversion DLL
- IDE の高 DPI と VCL フォーム デザイナ
- Delphi コンパイラ
- C++ コンパイラとツールチェーン
- デバッガの品質
- RTL の品質とパフォーマンス
- VCL
- FMX
- Data
さらに、次の新機能があります:
IDE の拡張
コード エディタでの ToolsAPI サポート
RAD Studio 11.3 では、Tools API インターフェイス の完全、包括的かつ非常に細やかなセットをユーザーに提供しています。これによりユーザーは、色付け、エディタやその他コンテンツについての検索、コード エディタに対するイベントの取得など、コード エディタをカスタマイズすることができます。
もっともエキサイティングで便利なプラグインは、エディタ内で機能します。このため、RAD Studio では、コード エディタのデータと表示を幅広くカバーする、付加価値の高い完全な API セットの提供を目指しています。以前は、その機能を使用するには特別な技術が必要だったプラグインに対して、公式にサポートされた API が提供されるだけでなく、この新しい API により、コード エディタに直接統合されるプラグインの記述が、非常に簡単になります。このように強力な API であるため、一部のエディタ関数は、これを使用するよう移行されています。新しい API がプラグインと生産性アドオンの革新に拍車をかけることを願い、皆さまからの創作を楽しみにしています!
これらの API を使用すると、ユーザーは、エディターの行、ガターやテキストの描画のすべての段階で割込むことができ、各ステージの前後で呼び出されるイベントで、IDE の動作に追加したり、それを置き換えたりすることができます。
エディタの場合、ユーザーは利用可能な多くの情報でその状態を照会し、また、各行に対してより詳細な情報を照会することもできます。Paint イベントには完全なコンテキストが含まれています。これを使用することで、考えられるエディタの描画を行ったり、エディタやそこにあるものについて(たとえそれが描画されていなくても)情報を取得することができます。
新しい ToolsAPI ユニットには、クラス、メソッド、プロパティのドキュメントが含まれています。新たな API を探索し、使用し始めてください:
コード エディタで描画を行うサードパーティ製プラグインやアドオンでは、すべてこれら新しいインターフェイスを使用することを強く推奨します。
コード エディタでの一致単語の強調表示
RAD Studio コード エディタには、選択したものと同じ単語のインスタンスを表示させたり、画面上でカーソルがある場所を強調表示する新しい機能があります。単語は画面上のどこでも一致検索されます(コメントを含む)。さらに、この機能には次のオプションがあります:
- 単語が選択されたとき、一致する単語の強調表示(ダブルクリックして単語を選択)。
- カーソルが単語の内部または横にあるとき、一致する単語の強調表示(ダブルクリックして単語を選択)。 ユーザーは必要に応じてこの機能はオフにできます。
- UI 設定で一致機能としてのキーワードの強調表示を無効に。これは、デフォルトで有効になっています。
[img2]
Delphi LSP
11.3 リリースでは、RAD Studio は品質のに重点を置き、主な問題を解決することを目指しています。
Delphi LSP の強化では、品質向上に重点が置かれています。主な問題 は解決されましたさらに、次の項目が追加されています:
- ヘルプインサイト ウィンドウでは、そのサイズを計算するのに異なる方法を使用し、コンテンツがより一致するようになりました。
- 静的メソッドの実装にカーソルを合わせると、想定通りに動作するようになりました。
- 読み取り専用ファイルの使用時、
Ctrl+左クリックが、想定通りに動作するようになりました。 - 匿名メソッドの入力中に〔Enter〕を押しても、IDE は誤ってセミコロン(end;)を追加しなくなりました。
- 移動先の領域がコンパイラ指令で囲まれている場合に、Ctrl キーを押したまま移動させても機能しなかった問題が解決されました。パーサーが、次のようなシンプルな条件コンパイラ指令を処理できるようになりました:
{$IF CompilerVersion > 24 and Defined(Windows)}
- ジェネリック型メソッドの宣言の中で、戻り値型とジェネリック型
<>の両方において、ジェネリック型を補完するコードが機能するようになりました。
function Test<TResult>(a: T): TResult; // TResult now suggested in both places.
- DelphiLSP が異なるプロジェクトにおいて、同じ名前のファイルが 2 つ以上ある場合にモジュールのソース コードへのパスを決定できない問題が解決されました。
- コード補完が、
<または>の記号を条件で使用している if 文の中で機能しない問題が解決されました。 - 型宣言が完了すると、その型の内部で宣言された private 型が、コード補完に表示されるようになりました。
Subversion
このリリースより、RAD Studio はSubversion の DLL を同梱しなくなるため、必要に応じて Subversion をインストールする必要があります。Git や Mercurial と同様、IDE は以前に設定された場所を検索します。つまり、Subversion のバージョンは、IDE のバージョンと関連づけられておらず、個別に最新の状態を保つことができます。
IDE 高 DPI、VCL フォーム デザイナの品質
このリリースでは、非ビジュアル コンポーネント(フレームを含む)のスケーリングが改善されています。次は、主な改善点です:
- バージョン 11 より前の RAD Studio から 11.x バージョンへの移行時、非ビジュアル コンポーネントの位置が正しくない問題が解決されました。
- フォームやシステムのスケーリングが変更された際、非ビジュアル コンポーネントは、正しい位置とスケーリングを保持します。
- 高 DPI モードでのフレーム スケーリングに影響するフォント サイズの問題、特に低 DPI でのデザイナ実行時での問題が解決されました。
その他の IDE の強化
- ユーザーは、新しい Markdown ファイルを、[ファイル|新規作成]から作成できるようになりました。
- IDE が昇格された権限で実行されると、IDE は、タイトル バー キャプションの先頭に ‘[Administrator]’ と表示するようになりました。
- ビルド構成を右クリックし、[エクスプローラで表示]オプションを選択すると、エクスプローラで現在のビルド構成の出力ファイルが検索されます。
- エディタの構造フロー アイコン(コードの横に表示されるアイコン、メソッドの戻り、制御フローの中断や移動などを示す)が、高 DPI 版と置き換えられました。
- 無効されたエディタ テキスト(ifdef-ed out)の不透明度が、[エディタ|検索]ページの UI オプションで変更できるようになりました。
- VCL デザイナのヒント ウィンドウのフォント サイズが強化されました。
- エディタの SyncEdit アイコンと構造フローが高 DPI アイコンと置き換えられました。
- [新規作成]ダイアログには、ビューが変更された際に、コピー/継承/使用について問題がありました。これは解決されました。
- パス ダイアログが無効なパスを灰色で表示しない問題が解決されました。
- セカンダリ エディタ ウィンドウ使用時の安定性の問題が解決されました。
- Markdown ファイルが、複数のエディタ ウィンドウで同時に開けるようになり、エラーも Markdown ファイルの構造ビューに表示されなくなりました。
コンパイラとツールチェーンの改善(Delphi and C++)
RAD Studio 11.3 では、RAD Studio に同梱されているほとんどのコンパイラについて、複数の品質向上が施されています。
Delphi コンパイラ
11.3 リリースでは、さまざまな領域におけるコンパイラの問題が解決されています:
- Delphi LSP の処理の改善とパフォーマンス強化
- 管理レコードおよび、ジェネリック型と制約に関する問題の修正
- Codegen の改善と修正
- レグレッションへの対応。これは、[コンパイル進捗]ダイアログでコンパイラが完全に誤った合計行数をレポートする問題を引き起こしていました。これは、Spring4D のビルド時に表示されていました。
C++ コンパイラとツールチェーン
RAD Studio 11.3 では、次のような品質上の修正が行われています:
- C++ プロジェクトで、ライブラリ接尾辞
$(Auto)の使用ができるようになりました。 - 静的ライブラリの依存関係チェックで間違った名前が使用され、不必要にリビルドされる問題を解決しました。
デバッガ
Linux 用 LLDB デバッガ は、最小要件として Ubuntu 18.x および Python 3.7.x でリビルドされています。また、このリリースでは、macOS および Linux に関するいくつかの問題が修正されています。
- 11.3 では、すべての非 Windows プラットフォームが LLDB に移行されました。この結果、GDB は今後サポートされません。
- 形式指定子が、LLDB の式評価でサポートされるようになりました。
- LLDB で、プロセスのアタッチとシンボルの読み込みで発生する問題が解決されました。
- Android32 において、LLDB への切り替えに関連して、セット評価と式評価の問題が解決されました。
- 新しい PAServer バージョン。
- ユーザーは、C++ Win64 デバッガを使用してプログラムからデタッチすることができます。
- インスペクタの[Range]メニュー オプションが、配列で使用できるようになりました。
- Android64 は、スレッドの命名をサポートしています。
ライブラリの向上
RAD Studio 11.3 では、すべてのライブラリ、Delphi RTL、C++ RTL、VCL、FireMonkey、FireDAC、DB RTL、HTTP クライアント ライブラリ、および HTTP サーバーでいくつかの改善と多くの品質修正が行われています。このセクションでは、より重要な変更点を中心に触れます。
Delphi RTL
リリース 11.3 では、Delphi RTL に次の拡張機能が追加されました。
- Android のバージョン 12 および 13 で、Android ネイティブ メモリ マネージャーの realloc C-API の実装が変更されたことにより、RAD は事前割り当てのロジックを、必要以上の事前割り当てを行うように変更し(メモリ フットプリントが 64K バイトを超える場合、文字列および動的配列の長さの変更ごとに 256 バイトが追加する)、realloc オペレーティング システム呼び出しと、それらのコピー操作が削減されるようにしました。
- システム RTL 関数
Moveは、最新の CPU 上でより良いパフォーマンスを発揮するよう最適化されており、実際の CPU ファミリとビット数によっては、2倍から5倍高速になります。 - ZLib ライブラリがバージョン 1.2.13 に更新されました。
- _InitializeRecord のパフォーマンスが向上しました。
- 大量ファイルに対する TDirectory.GetFiles のパフォーマンスが向上しました。
Vcl
Release 11.3 では、次の強化が VCL に対して行われています。
- TControlList VCL コンポーネントでは、次の新しいプロパティとイベントを使用して、複数の項目を選択する機能が提供されています:
- TDBGrid、TComboBox、TStringGrid、およびその他コントロールにおけるスケーリングの問題、および、TListView、TComboBox、TStringGrid コントロールを含む、複数のコンポーネントにおける DPI 変更の問題について対処しました。また、フォームの Scaled プロパティが False の際の全体的な動作が改善されました。
- 一部の TBalloonHint のレグレッションが修正されました。
- アクセス違反を回避するよう StyleHook コードが改善されました。
- スケーリング時の TreeView のグラフィカル面での向上、および、複数のその他コントロールについての、グラフィカル オブジェクトの描画の改善。
- SpellChecking とカスタム ポップアップ メニューの間での、TRichEdit コントロールにおける競合に対処しました。
- MinValue がアクティブな状態での NumberBox の入力が改善されました。
- 非常に多数の(仮想)項目を持つ TControlList コントロールのサポートが向上しました。
- カスタム タイトル バー ボタンの配置とサイズ(キャンバス サイズと左キャプション マージンを含む)に関する問題が解決されました。
FireMonkey
RAD Studio 11.3 では、新しい TBiometricAuth コンポーネントにより、Face ID や指紋など、生体認証による認証手段が、Android および iOS デバイスで提供されています。
TBiometricAuth をコンポーネント パレットから使用すると、目的のプロパティを設定することができます。アプリケーションを Android で提供する場合、少なくとも PromptDescription と PromptTitle のプロンプト プロパティに値があることを確認してください。また、BiometricStrengths プロパティに必須とする強度を指定してください。さらに、OnAuthenticateSuccess または OnAuthenticateFail イベントに対してハンドラを作成して、それらのシナリオにおいて何を発生させるかを制御することができます。
新たな API を探索し、使用し始めてください:
リリース 11.3 ではまたFireMonkey に次の拡張機能が追加されました。
- 電話システム サービス(Calls、Carrier、CallState)の状態の変化を追跡するための、新しいインターフェイス サービス IFMXPhoneDialerListenerService が追加されました。
android.permission.READ_PHONE_NUMBERS を要求する必要があります。
ユーザーにアクセスが許可されたら、サービスを要求し、Start メソッドを呼び出します。そうでなければ、ユーザーは、なぜこの権限が必要かを説明する必要があります。通話追跡が終わったら、Stop メソッドを呼び出します。- FireMonkey アプリは、Windows 再起動マネージャーからの終了要求を適切に処理するようになりました。
- Radiant Shapes 対応プラットフォームに macOS ARM 64 が追加されました。
- アクセサビリティ インサイトで検査する際の、Windows での FireMonkey アクセサビリティ サポートが向上し、また、FMX.ScreenReader.Win.pas における AV にも対応しました。
- Windows プラットフォームにおける複数の TWebBrowser の改善が行われました。それには、3D FMX アプリが利用可能なったほか、Edge に対する TCustomWebBrowser.CaptureBitmap の実装などが含まれます。
- 一部の iOS プラットフォームの翻訳の向上(iOS の仮想キーボードの[Done]ボタンや iOS のピッカー ボタンなど)。TDateEdit、TTimeEdit、TComboBox、TiOSAddressBook.SaveContact に対する iOS のスクロールの修正。
- Android での DocumentFile プロバイダのサポート。
- 指スライドによる TMemo におけるカーソルの移動、TAddressBook コンポーネントでの Android の改善。
- TForm Cursor、TWinMultiDisplay.FindDisplay での Windows の改善。
- TBitmap.AssignFromSurface, TCanvas.TransformRect, TBitmap.Canvas.BeginScene、および、TMemo や TGridPanelLayout において削除されたアーティファクト行における、FireMonkey のグラフィックスの向上。
- 多くのコントロールに対する改善や修正。これには、Multiview(controltype = platform)、SpeedButton(TFrame での使用時には isPressed)、Label(FocusControl)、TTreeViewItem の IsChecked、TVertScrollBar 内部での TEdit の動作などが含まれます。
- ClipChildren は XRadius と YRadius を考慮に入れるようになりました。
- すべてのコントロールでの Tab キーの循環が改善されました。
Data
リリース 11.3 では、データ ライブラリに次の拡張機能が追加されました。
- Linux での ODBC ドライバーのサポートを強化するために、データベース RTL(TStringField)、FireDAC ODBC、DatS、または DataSet での UTF8 の予備サポートが追加されました。
- FireDAC は、PostgreSQL のパフォーマンスを向上させます。新しい PostgreSQL 接続設定 FastFetchMode=Choose|Default|All|First があります。以下の通りです:
- Choose - FireDAC に適切な最適化目標を選択させます。これが、デフォルト値です。
- Default - FireDAC は何も最適化しません。従来のモードです。
- All - FireDAC は常に結果セットのフェッチを最適化し、すべてのレコードのフェッチを完了させます。
- First - FireDAC は常に結果セットのフェッチを最適化し、最初のレコードのフェッチを完了させます。
- TFDQuery エディタ オプションとクエリ エディタのフォントにおいて、高 DPI スケーリングが改善されました。
- MongoDB サーバーへのログインと新しいトランザクション機能に対してサポートを提供するために、適切なバージョンの MongoDB クライアント ライブラリを追加しました。
- TBindingExpression の大文字と小文字を区別しないようにしました。
- PostgreSQL バージョン 14 およびバージョン 15.1 との FireDAC ドライバの互換性を確認しました。
- FireDAC Oracle 接続用の新しい NCharReplacement 構成が追加され、q['...']「NCHAR 文字列リテラル置換」のサポートが追加されました。
HTTP および REST クライアント ライブラリ
HTTP および Rest クライアント ライブラリに対して、RAD Studio 11.3 は次の強化を行っています。
- TMultipartContentParser プロパティは、ContentType を持つすべてのパーツをファイルとして扱いません。
- 自動トークン 更新を TOAuth2Authenticator に追加し、Google REST サービス認証のサポートと、TOAuth2Authenticator アクセス トークンの有効期限を改善しました。
- TRESTResponseDataSetAdapter の NestedElements のサポートを向上させました。
- Android の REST コンポーネントでクライアント証明書を使用するためのサポートを追加しました。あ
- RAD サーバー、TEMSDataSetResource コンポーネントの LIST 機能が、JSON 構造で適切に整形された日付を返すようになりました。
- 添付ファイルを伴う際の SOAP サーバー アプリケーションでのメモリ リークに対応しました。
その他の強化
RAD Studio 11.3 では、Apple が導入した macOS 用の新しい公証プロセスを提供しており、これは XCode 14 以降です。また、Windows 署名では、MSIX ファイルのタイム スタンプのサポートが含まれるようになりました。