12 Athens - Release 2
メインページ への移動
以前のリリースでの新機能 への移動
RAD Studio 12.2 Athens の更新版がリリースされました(2024年9月12日)。
- バージョン 12 Athens での新機能についてはこちらから参照してください。
- バージョン 12 Athens - Release 1 での新機能についてはこちらから参照してください。
RAD Studio 12 Athens - Release 2(別名 12.2)がインストール可能となりました。 RAD Studio 12.2 は、RAD 12 および 12.1 の機能を完成させることにフォーカスを置いており、製品全体にわたって既存機能の強化と、新機能の追加が行われています。
RAD Studio 12.2 は、品質向上に特にフォーカスしていますが、C++ ツールチェーンと IDE においては機能拡張を顕著に行われています。 主な機能と品質向上が行われた領域は次のとおりです:
- C++ Clang ツールチェーン
- Delphi 64 ビット バイナリ コンパイラ
- IDE
- Visual Assist
- Smart CodeInsight
- ToolsAPI
- デバッガ
- RAD Studio WebStencils
- ライブラリ
目次
12.2 における製品領域での主な強化
次のセクションでは、12.2 の主な改善点について分野ごとに説明します。
C++ Clang ツールチェーン
RAD Studio バージョン 12.2 では、新しい Win64 Clang ツールチェーンの改善に特に重点を置いています。これには、C++ パッケージの新規作成と、リンカの設定への大幅な更新が含まれています。
動的パッケージ
RAD Studio バージョン 12.2 より、C++ Windows 64 ビット モダン アプリケーションは、動的パッケージにリンクすることができます。C++ で使用されるパッケージは、Delphi と C++ の両方で作成できます。
ユーザーは、新しい C++ パッケージ プロジェクトを作成し(または既存のものを開き)、そこへ Windows 64 ビット モダン プラットフォームを追加し、オプション[実行時パッケージをリンク]を有効にします。
技術ノートやさらなる情報については、次のドキュメント ページをご覧ください:
静的 vs. 動的 RTL リンク
Borland、CodeGear、Embarcadero はデフォルトを静的リンクとしている一方、新しいツールチェーンはデフォルトで動的リンクを使用します。通常の C++Builder プロジェクトをビルドすると、静的リンクと動的リンクでは想定するデフォルトがみられます。バージョン 12.2 では、RAD Studio が MinGW のデフォルトとの互換性を維持することも保証されます。
デフォルトの動作を理解するには、「コマンドラインでの LLD の利用」を参照してください。
CPU 飽和マルチコア ビルド
バージョン 12.2 より、--jobs
での CPU 飽和マルチコア ビルドで、Windows 64 ビット モダンをサポートしています。これにより、非常に高速なコンパイルが可能になります。並列処理をベースとして旧バージョンより、約 40% より高速になります。
C++Builder 12.2 では、次の新しい動作があります:
- バッチ コンパイルは、デフォルトで
有効
に。 - IDE や MSBuild 内からの
--jobs
のサポート。
これはつまり、プロジェクトに対して IDE から、または MSBuild を使用する CI システムを介して、Windows 64 ビット モダン アプリをコンパイルする際、デフォルトでユーザーは並列コンパイルを利用できることとなります。デフォルトの設定では、すべてのコアを使用するようになっています。
リンカ設定
RAD Studio 12.2 では、BCC64X で利用可能な設定が更新されています。コマンドライン設定オプションで他の設定を渡すことも可能ですが、新しい設定は IDE の内部 UI に含まれています。
新しいリンカ設定の更新の一部として、次のリンク設定が、新しい Win64 プラットフォームに対して非表示となっています:インクリメンタル リンク、リンク時間の表示、高速 TLS、リンク前の状態のクリア、そして大文字小文字を区別するリンク。
リンカは、セクションへのリンクやセクションからのリンク、ファイルやオブジェクトの配置、DEP や ASLF、スタックやヒープのサイズ、詳細リンクなどを通じて、ファイル サイズを最適化するために多重フラグをサポートしています。
フラグ[DLL の遅延読み込み]を設定すると、リストの DLL を遅延読み込みさせ、--delayload=..
にマップします。
詳細については、「リンカの設定」のドキュメントを参照してください。
注目すべき改善点
- Windows 64 ビット モダンは、新しい VCL、FMX、DLL、パッケージ、静的ライブラリ、コンソール プロジェクトのデフォルト プラットフォームです。
- このツールチェーンでは、アセンブリにコンパイル および プリプロセス オプションは、IDE から動作します。
- パッケージのデフォルト プラットフォームが、Win64X ではなく Win32 に変更されました。これは、大抵の一般的な使用例が、コンポーネントおよび IDE 内インストールであるためです。
- Win64X は、ターミナル サーバー フラグをサポートしており、Win64X デバッガはパッケージが読み込まれると、モジュール リストに表示するようになりました。
- BCC64x 構成ファイルで、接頭辞
@
のついたルート パスを使用できるようになりました。 - DLL は、従来の DLL エントリ ポイント(DLLMain)を使用し、直接 DLL にリンクできるようになりました。インポート ライブラリを作成する必要はありません。
- ライブラリ パス検索が動作します。ユーザーは次を使用できます:
-
bcc64x -LC:\MyLibs File1.lib File2.lib
Delphi 64 ビット コンパイラ
RAD Studio バージョン 12.2 Enterprise および Architect 版には、Delphi コンパイラの 64 ビット版が含まれています。新機能は、64 ビット ツール アーキテクチャと呼ばれています。64 ビット ツールを使用すると、ユーザーは、コンパイラにより大きいメモリ領域を使用することができ、それにより、メモリ問題に陥ることなく、より大きなアプリケーションをコンパイルできるようになっています。
以下は新しい 64 ビット ツールです:
- Delphi Windows 32 ビット ターゲット コンパイラ
- Delphi Windows 64 ビット ターゲット コンパイラ
外部 MSBuild を使用してコンパイルするには、RAD Studio IDE のプロジェクト オプション ダイアログ ボックスでの Delphi コンパイラ設定で、使用するツールのバージョン(コマンドライン コンパイラを含む)を[優先するツール アーキテクチャ]フィールドで指定します。
Delphi Windows コマンドライン コンパイラ(dcc32.exe
and dcc64.exe
)は、RAD Studio インストール bin64 フォルダにありますが(デフォルトでは、C:\Program Files(x86)\Embarcadero\Studio\23.0\bin64
)、同様の実行可能ファイルが、製品 bin フォルダにも、コマンドライン コンパイラ 32 ビット版があります。
DelphiLSP 64 ビット
RAD Studio バージョン 12.2 Enterprise および Architect 版には、DelphiLSP エンジンの 64 ビット版が含まれています。 64 ビット版のサーバーを有効にするには、[ツール|オプション...|エディタ|言語]に移動し、[[コード インサイト]タブ]をクリックします。ドロップダウン リストから Delphi を選択し、チェックボックス [64 ビット版のサーバーを利用]を選択します。
IDE の向上
以下は、セクションで分けられた IDE 改善点です。
フォーカス モード
RAD Studio 12.2 では、コーディングに集中できるようフォーカス モードが導入されています。最初の表示のときには、コード エディタが 1 つ中央に配置される以外すべての IDE UI は非表示になっており(複数並べるよう追加することも可能)、エディタの内部の余分な UI をさらにオフにすることもできます。エディタは、上部にファイル名が表示されており、閉じるボタン、左右に分割するボタンがあります。また、多くのタブや複数のエディタを表示することも可能です。
フォーカス モードを起動する方法や詳細については、ドキュメント ページを参照してください。
エディタ スクロール バーの注釈
コード エディタ スクロール バーでは、次の情報を表示するようになりました:
- エラー インサイトとコンパイル エラー
- 検索結果
- ブックマーク
- 変更された行
これにより、注意が必要な要素や探しているさまざまな要素が文書内のどこにあるのかを、すぐに見つけることができます。
上の例では、注釈がスクロールバーに水平線として表示されており、重ならないようになっています。
エディタ UI
エディタの行番号は、エディタの左余白の左側に描画できるようになりました。これは、ブレークポイント ドットなど、大抵より重要となる UI を、コードの近くに描画できることを意味します。
エディタ スクロール バーは、エディタの色を用いて描画することもできます。これはつまり、IDE の配色ではなく、エディタの配色に合わせて色を変更できることを意味します。新しい設定は、[オプション|エディタ|スクロールバー|スクロール バーにエディタのテーマ色を適用する]にあります。
呼び出しスタックと他のウィンドウにおける変更の強調表示
コードを表示する次の領域でも、構文の強調表示を使用しています。
- 呼び出し履歴
- ローカル変数
- 構造体
- エディタの外側でメソッド宣言が表示される場所(コード補完ウィンドウやエディタ上部のドロップダウンなど)。
高DPI 品質: ツールバーとデザイナ
RAD Studio 12.2 リリースでは、高 DPI IDE における主要な問題に対する大幅な改善が含まれています。
- フレームのデザインとスケーリング: VCL フレーム(他のフレーム内に配置された(つまり入れ子になった))が、高 DPI デザイナでも正しく拡大縮小されるようになりました。
- ツールバーとメイン メニュー: IDE のツールバーとメニューは、以前のバージョンでは DPI スケールを変更する際に奇妙な動作をしていましたが、今回のリリースでは、サイズ調整と描画動作の両方の点で、大きく機能が改善されています。
Delphi LSP における改善点
DelphiLSP エンジンは、ヒントやナビゲーションについて特に、そして主にユニットのインターフェイス部分で大幅に改善されました。新しい機能強化については、次のものが含まれています:
- シンボル ヒント: ヒントは、フィールドを含むクラス インターフェイス内のほとんどのシンボルに対して機能します。
- ローカル定数と変数: ローカル定数と変数の上にマウスを移動すると、その定義を解決できるようになりました。
- フォワードされた型宣言: エンジンは、状況により、フォワードされた型宣言を解決するようになりました。
このリリースでは、複数行の文字列を含むユニットにおける問題も解決しています。これは、内部コード マネージャ(PASMGR)がこの機能でサポートされていないために発生していました。
IDE のその他に対する改善
以下は、RAD Studio リリース 12.2 における IDE の品質改善です:
- インストーラの Fonts パッケージに、Intel One Mono が追加されました。このフォントは、アクセサビリティを意図したもので、視覚障がい者にとってより分かりやすくすることを目的としています。
- 分割エディタでは、横にドッキングされたツール パネルは、水平方向にサイズ変更しても同じサイズのままです。また、エディタを分割するための新しいショートカットがあります。
- 構造ペインのエラー インサイトで、国際文字を正しく表示するようになりました。
- クラッシュ コレクタ ダイアログが、新しい Quality Portal にリンクされるようになりました。
Visual Assist
RAD Studio 12.2 リリースでは VA の新機能が導入されており、C++ ツールチェーンが向上されています。新しいバージョンでは、パーサーと参照の検索のパフォーマンスが向上しています。
このリリースでは、Assist バージョン 2024.6 で使用されているバージョンと一致するように Visual Assist DLL が更新されました。これには、初期パース時間と、参照の検索、名前変更リファクタリングなどの機能の両方について、2024 年までに行われたすべてのパフォーマンス改善が含まれます。これにより、初期パースでは 8-10 倍の速度が向上し、他の機能では最大 4 倍の速度が向上します。
リリース 12.2 には、次の機能が含まれています:
- 抽出メソッド: コードのあるセグメントを、1 つの別個のメソッドに移し、そのセグメント部分を抽出されたメソッドの呼び出しに置き換えます。複数の行や、行のセグメントを抽出することができます。
- 変数の導入: 選択範囲の最も内側のスコープで一時変数を定義し、置換されたコードを(もしあれば)初期化し、式の 1 つまたは複数の発生個所を一時変数で置換します。
- 使用方法からの作成: 開発者が未定義のシンボルの名前を入力し、現在の位置を離れることなくそれを取り入れられるようにします。このトップダウン開発スタイルは、列挙型、変数、関数、メソッド、ヘッダー ファイルなどを含む多くの対象に対して有効です。
RAD Studio Smart CodeInsight
RAD Studio 12.2 では、Smart CodeInsight と呼ばれる LLM 用の新しい IDE インテグレーションが導入されています。これは、RAD Studio によるこの領域への最初の着手場所、最初のサポートの提供であり、今後 RAD Studio は拡張していく予定です。
AI サポートは デフォルトではオフ になっており、使用するには、手動で有効にさらに設定する必要があります。
Smart CodeInsight は、新しい ToolsAPI を備えた RAD Studio の AI サポート オープン アーキテクチャであり、特定の AI ベンダー用のプラグインを記述したり、IDE 内から AI を使用したりすることができます。このリリースでは、RAD Studio で次のものが提供されています:
- コア AI エンジンと ToolsAPI
- 次のものとの IDE 統合
- AI チャット ウィンドウ
- AI 操作を呼び出すエディタ メニュー コマンド
- エンジンの設定オプション
- 次の LLM をすぐ使用可能にするサポート
- OpenAI(オンライン)
- Gemini by Google(オンライン)
- Claude by Anthropic(オンライン)
- Ollama by Meta(オフライン)
- パーソナル AI プラグイン
RAD Studio では、さらにカスタマイズ可能な UI インテグレーションが提供されており、AI エンジンを追加することができます。
プライバシー コントロール
RAD Studio は、設定の拡張と完全なプライバシー制御を、さまざまな方法で提供しています。
- LLM を信頼している場合には、単一のグローバル設定で、AI 機能全体をオンにすることができます。デフォルトでは、機能はオフになっています。
- 各エンジンは、有効または無効にそれぞれできます。
- それぞれの UI 要素(チャットおよびエディタ メニュー)で、デフォルトでどのエンジンが使用されるか選択します。
- API キーは、暗号化された形式で保存されます。
- ローカルのオフライン エンジンを使用するオプションが含まれています。
Smart CodeInsight の設定
Smart CodeInsight 機能が、[ツール オプション]ダイアログの[エディタ|AIEngine]エントリで設定できます。このトピックについては、「Smart CodeInsight のオプション」ページを参照してください。
Smart CodeInsight の UI 要素
IDE は、2 つの異なる方法で AI ツールを表示します:
- 汎用チャット ウィンドウ: ここにカスタム プロンプトを入力します。
- エディタ メニュー: 現在選択されているソース コードに対して、特定のオペレーションを呼び出すことができます。
詳細については、「Smart CodeInsight の UI 要素」ページを参照してください。
ToolsAPI
AI と Smart CodeInsight
12.2 の IDE での Smart CodeInsight(AI)サポートでは、チャット ウィンドウや言語翻訳など、IDE 内サービスのセットを提供しています。その主な機能な 2 つで次のとおりです:
- 任意の AI をバックエンドにすることが可能。RAD Studio は 4 つの実装(OpenAI、Claude、Gemini、Ollama)を提供していますが、ユーザーは独自のものを追加することも可能です。
- ユーザーの構成済み AI ソリューションを使用するプラグインの記述。ユーザーは、自分が好む AI ベンダを設定でき、その後インストールされるプラグインはその AI を使用できます。
AI サービスの利用
AI プラグインの作成 やAI バックエンドの実装 を行う方法を学習し、また、デモを利用して作業に着手してください:
- AI エンジン デモ
-
C:\Users\Public\Documents\Embarcadero\Studio\23.0\Samples\Object Pascal\ToolsAPI\AIEngine Demos\CohereAI_Plugin
- UI デモ
-
C:\Users\Public\Documents\Embarcadero\Studio\23.0\Samples\Object Pascal\ToolsAPI\AIEngine Demos\AI_Consumer_CodeSample
ToolsAPI: フォーカス モード
フォーカス モードは、コード エディタのみを表示するために実装されています。他のビューを利用可能にするには、GetDisplayInFocusMode を実装できます。
エディタ スクロール バーの注釈
独自のスクロール バーの注釈を追加できるようになりました。これらは通常、私たちの注釈(水平線マーカー)のように描画されますが、カスタム シンボルなど、好きなものを描画することもできます。登録したスクロールバー注釈は、私たちの注釈と同様に、[オプション] ダイアログの [スクロールバー] ページに表示されます。
これらの実装方法については、ToolsAPI.Editor ドキュメントを参照してください。
エディタの ToolsAPI 実装
ToolsAPI.Editor における API の次の問題が修正されました:
- 現在の行のハイライトのオン/オフに関係なく、行ハイライト エディタの状態が正確になりました。
- セルの状態は、セルにエラー、警告、ヒントがあるかどうか、および無効になっているかどうか(ifdef で除外されているかどうか)を正しく反映するようになりました。
- ペイント コンテキスト パラメータにセル サイズが含まれるようになりました。これは、新しい INTACodeEditorPaintContext290.CellSize プロパティに追加されました。
- 行の状態は、行が省略されたかどうかを正しく反映するようになりました。
デバッガ
このリリースでは、主なデバッガの問題の解決に重点が置かれています。
Delphi インライン変数
RAD Studio バージョン 12.2 では、デバッガは更新され、同じ名前のインライン変数の反復を正しく処理できるようになっています。
詳細については、「インライン変数」ページを参照してください。
エラー処理
このリリースでは、LLDB クラッシュ時にそれを表示するよう、デバッガのエラー処理が更新されています。これにより、新しい Debugger fatal error: debug kernel crashed
エラーが表示されます。その場合、デバッグ中のプロセスは終了します。
以前は、「Debug kernel not responding
」メッセージが表示されていました。これは引き続き表示される可能がありますが、RAD Studio では処理を改善し、デバッガが応答していない(処理に時間がかかっている可能性がある)ことと、クラッシュを区別できるようにしました。
Windows 64 ビット モダン デバッガ
Win64 C++ モダン ツールチェーンには、次の型のフォーマッタがあります:
Delphi | C++ |
---|---|
|
Win64X デバッガは、パッケージの読み込み時に、モジュール リストにそれらを表示するようになりました。
その他のデバッガの改善
次は、RAD Studio リリース 12.2 で行われた改善と修正です:
- PAServer が新バージョンへ更新されました。
- C++ のビルド時(すべてのプラットフォーム)、{{code|NO_ALWAYS_INLINE}} を定義できるようになりました。これのオン/オフの切り替えで、C++ 文字列実装などのシステム コードへのステップインを回避できます。
- 64 ビット RAD サーバー パッケージでデバッグが可能になりました。
- パッケージを使用する Win64(Delphi)アプリケーションが、[プロセスにアタッチ]を使用する際、シンボルが正しく読み込まれるようになりました。
- ダイアログ[
デバッグ カーネルが応答しません
]のタイムアウトが 30 秒に延長されました。 - Parallels ARM などの VM 上でのデバッグが、IDE やパッケージを正しくデバッグするようになりました。
- ThreadCreated や ThreadExited の通知の順序が、完全に一貫性を保ち、発生した順に配信されるようになりました。
- [実行|パラメータ]ダイアログのバックスラッシュが正しく機能するようになりました。
- ローカル変数や他のウィンドウでのペイントの問題が解決されました。
WebStencils
RAD Studio 12.2 では WebStencils が導入されています。これは、HTML ファイルを、WebBroker や RAD サーバー テクノロジーに、サーバー側スクリプトをベースに統合、処理するものです。これにより、RAD Studio サーバー側アプリケーションで抽出および処理されたデータを利用する、任意の JavaScript ライブラリをベースとした、最新のプロフェッショナルな外観の Web サイトを開発できます。この機能はテンプレート エンジンとも呼ばれ、特定の実装は ASP.NET Razor の処理に似ています。
WebStencils は、サーバー側スクリプトを提供することで、Web テクノロジ(WebBroker、DataSnap、RAD Server)の導入の支援を目的としています。これはつまり、標準ツールによる HTML ページの作成や、CSS や JavaScript ライブラリの導入をする機能と共に、データベース クエリの結果など、アプリケーションからくる、生成ページからのデータを追加する機能を保持します。
ナビゲーション Web サイトでの支援を目的としており、例として、ブログ、オンラインカタログ、オンライン注文システム、辞書などのリファレンス、Wiki などがあげられます。WebStencils は、Web 開発のひとつのソリューションとして、HTMX の優れた基盤となります。2 つのテクノロジはうまく融合されます。HTMX ページはサーバー側コード生成からメリットを享受し、コンテンツの更新に関しては、REST サーバーにフックすることができます。Delphi Web テクノロジは、ページ生成と REST API を、非常に高い品質レベルで提供することができます。
これまで、WebBroker と DataSnap ライブラリは、PageProducer コンポーネントを使用し、Web サーバー アプリケーションから返される HTML をカスタマイズするには、それを派生させる必要がありました。Web サイトのページに共有テンプレートを使用するには、クリーンな方法である必要があったため、これは非常に制限のある方法でした。
また、タグベースの表記法(<#custom attrib="value">
)は、あまり使いやすいものではありませんでした。
以前のタグは、@custom.value
といった形になります。スクリプト エンジンの用途は、データ アクセス、ループ、条件文を最小限にし、
テンプレートを特定のページにマージする方法を提供することです。
WebStencils の全体的なアーキテクチャは、Web 開発と、HTML の生成にフォーカスを置いているのに対し、テンプレート エンジンは、XML、JSON、YAML やその他のフォーカットでデータ ファイルをエクスポートする場合、ベース スケルトンとデータをマージして、テキストやドキュメントを生成する場合、一般的なデータ処理など、さまざまなシナリオで使用することができます。
この機能を使用するための完全なガイドについては、「WebStencils」のドキュメント ページを参照してください。
ライブラリの向上
次のセクションでは、さまざまな RAD Studio ライブラリへ施された改善の詳細についてです。
RAD サーバーの改善
EMS.Services ユニットには、IEMSApiDocumentService インターフェイスが含まれています。これは、生成された swagger doc ファイルでメタデータのカスタマイズを可能にします。このメタデータには、Title、Version、Description が含まれており、次のように使用することができます:
initialization
var LDocSvc: IEMSApiDocumentService;
if TEMSServices.TryGetService<IEMSApiDocumentService>(LDocSvc) then
LDocSvc.SetMetadata('My API', 'ver 1.2.3', 'My public API description');
The EMS.Services ユニットにはまた、Swagger を介してドキュメント化された API をフィルタリングする機能が、インターフェイス IEMSApiDocumentFilter と IEMSApiDocumentService と含まれています。例:
{ TMyDocFilter }
type
TMyDocFilter = class(TInterfacedObject, IEMSApiDocumentFilter)
protected
function Apply(const AContext: TEndpointContext; const AResource: TEMSResource;
const AAPIDocPath: TAPIDocPath): Boolean;
end;
function TMyDocFilter.Apply(const AContext: TEndpointContext;
const AResource: TEMSResource; const AAPIDocPath: TAPIDocPath): Boolean;
begin
Result := AAPIDocPath.Path.StartsWith('/public');
end;
var
LInd: Integer;
initialization
var LDocSvc: IEMSApiDocumentService;
if TEMSServices.TryGetService<IEMSApiDocumentService>(LDocSvc) then
LDocSvc.AddFilter(TMyDocFilter.Create as IEMSApiDocumentFilter);
finalization
var LDocSvc: IEMSApiDocumentService;
if TEMSServices.TryGetService<IEMSApiDocumentService>(LDocSvc) then
LDocSvc.RemoveFilter(LInd);
以下は、RAD Studio リリース 12.2 における品質改善です:
- TEMSDatasetResource コンポーネントにさらにイベントを 2 つ、BeforeRequest と AfterRequest が追加されました。これで、リクエストが処理される前と、レスポンスがクライアントに送信される直前に、コンポーネント自身によって自動的にアクセスできるようになりました。
- HTTP/2 の必須サポートを追加することで、RAD サーバー プッシュ通知(Firebase APNS を含む)を再構築しました。
- RAD サーバーの Swagger サポートが YAML 形式に拡張されました。
- APIDocAttributes デモが更新されて、複数行の文字列リテラルの利用を示しています。
- RAD サーバーは、利用可能な API の Swagger YAML や JSON ドキュメントを自動生成できます。
- マルチテナント対応 RAD サーバーの Swagger ドキュメントが有効になりました。
- X-Embarcadero-Session-Token プロパティが SwaggerDocs で利用可能になりました。
RTL での向上
以下は、RAD Studio リリース 12.2 における品質改善です:
- 新しい TParallelArray クラスが メソッド
&For
およびSort
と共に、System.Threading ユニットに追加され、Array の項目に対して並列にオペレーションを実行できるようになり、マルチコア コンピュータでの処理が大幅に速くなりました。 - TDictionary<K,V> から派生した新しい TOrderedDictionary クラスが、System.Generics.Collections ユニットに追加されました。この OrderedDictionary は、辞書に追加された項目の順番を保持します。
- System.DateUtils における RFC822 の日付サポートが改善されました。
- SQLTimeStampOffsetToDateTime が、TZ 情報を使用し、ローカル時間を返すようになりました。
- System.IOUtils ユニットの TDirectory.CreateDirectory メソッドが、フォルダが作成できない場合に例外を発生させるようになりました。
- TRegistry クラスが拡張され、rdMultiString サポートの改善と新しいメソッド ReadNone と WriteNone が追加されました。これらのメソッドは、ヘルパ クラスで一時的に定義されています。以下を参照してください:
TRegistryHelper = class helper for TRegistry
public
function ReadNone(const Name: string): Boolean;
procedure WriteNone(const Name: string);
end;
VCL の向上
以下は、RAD Studio リリース 12.2 における品質改善です:
- RAD Studio 12.2 では FormsTabBar コントロールが使用する UI が再開発され、非表示の子ウィンドウに関連づけられているタブが表されるようになりました。これにより、フォームが非表示の場合、通常の状態では標準の外観(標準タブ UI)が使用され、ホット状態では、アルファ透明度で描画されたタブ形状が使用され、その内部のテキスト、アイコン、閉じるボタンなどは通常の状態と同じ外観になります。
- 実行時および設計時における高 DPI モニタのフレーム スケーリングに関する問題が解決されました。
FMX の改善
以下は、RAD Studio リリース 12.2 における品質改善です:
- Skia for Delphi の統合バージョンが、バージョン 6.2.0 に更新されました。
- 改善されたリソース ブラシのサポート: この種類のブラシは、すべてのプラットフォームのすべてのキャンバス実装に追加されました。
- 標準 Windows クリップボード形式が、
CF_BITMAP
やCF_DIBj
など、Windows 定数と同じ名前でデフォルトで追加されました。 - FireMonkey で、Windows のプラットフォーム サービスとして(IFMXSystemAppearanceService を使用)、ライト/ダーク テーマの検知がなされるようになりました。
- パーセンテージを使用した、TGridPanelLayout の行列のサイズ変更を自動で行う新しいオプション。
- Android マニフェスト ファイルの targetSdkVersion が、プロジェクト オプション ダイアログのバージョン情報セクションで、設定できるようになりました。
iOS および macOS のリンカの更新
RAD Studio バージョン 12.2 では、Apple プラットフォームに対してリンカが更新されました。これにより、特に、XCode 14 でビルドされた iOS および macOS ライブラリにリンクできるようになりました。この一例が、Firebase iOS SDK(11.0)です。
Android ツールの改善
ユーザーが、Dex
や ネイティブ ライブラリ
のファイルのパッケージ化をより制御できるよう、 そして、開発や配布のサイクルでのアプリケーションの動作に矛盾が生じないよう、RAD Studio 12.2 では、オプション[Dex ファイルの圧縮]および[ネイティブ ライブラリ ファイルの圧縮]が、[プロジェクト|オプション...|アプリケーション|パッケージ]ページに追加されています。
オプション[Dex ファイルの圧縮]および[ネイティブ ライブラリ ファイルの圧縮]を有効にすると、生成されるすべての「.apk
」ファイルに、非 zip 形式の圧縮された Dex
および ネイティブ ライブラリ
ファイルが格納されます。
オプション[Dex ファイルの圧縮]および[ネイティブ ライブラリ ファイルの圧縮]を無効のままにした場合、動作はより複雑になります。これは、圧縮されていない Dex
と ネイティブ ライブラリ
ファイルに対するプラットフォーム サポートが、API レベルで結び付けられるためです。
以下は、RAD Studio リリース 12.2 における品質改善です:
- Android リソースの操作を段看的に実行するよう、ビルド システムが更新されました。RAD Studio のビルド システムは、
R.jar
ファイル(すべてのR
Java クラスが含まれている)を生成するために、rclasser
コマンドライン アプリケーションを使用しています。これは、Android リソースの識別子にアクセスする Android ライブラリをインポートするために必要です。 - Android ライブラリ(
.aar
ファイル)のインポートのサポートが追加されました。 - Android マニフェスト ファイルの targetSdkVersion が、プロジェクト オプション ダイアログのバージョン情報セクションで、設定できるようになりました。
データベースとインターネット関連のライブラリ
以下は、RAD Studio リリース 12.2 における品質改善です:
- HTTP ヘッダー サイズが、ISAPI モジュールで 4K サイズを超えることができるようになりました。
- RAD サーバーにおける ThingPoint テクノロジおよび Edge モジュールでの重要な問題が処理されました。
- TOAuth2Authenticator コンポーネントに、新しい OnNeedClientCertificate イベント ハンドラ(TRestConnection と同様な)が提供されました。これにより、ユーザーはクライアント証明書と OAuth2 を介した認証を使用することができます。
- FireDAC では、Firebird 4 データベースのキーワード「
OFFSET
」のサポートが追加されました。