11 Alexandria - Release 2
メインページ への移動
以前のリリースでの新機能 への移動
RAD Studio 11.2 Alexandria の更新版がリリースされました(2022年9月14日)。
- バージョン 11 Alexandria での新機能についてはこちらから参照してください。
- バージョン 11 Alexandria - Release 1 での新機能についてはこちらから参照してください。
- バージョン 11 Alexandria - Release 1.5 での新機能についてはこちらから参照してください。
- バージョン 11 Alexandria - Release 3 での新機能についてはこちらから参照してください。
目次
11.2 における製品領域での主な強化
RAD Studio 11 Alexandria - Release 2(別名 11.2)がインストール可能となりました。 RAD 11.2 は、11 および 11.1 の機能セット上に構築されており、製品全体にわたって既存機能の強化と、新機能の追加が行われています。 Delphi 11、C++Builder 11、および RAD Studio 11 が、有効な更新サブスクリプションのユーザーにダウンロード可能となっています。
RAD Studio 11.2 は、特に品質向上にフォーカスを置いて進められました。 鍵となる品質向上の対象領域には、次があります:
- Delphi 用 iOS シミュレータ
- マークダウンのサポート
- VCL、FMX、RTL の品質
- RTL パフォーマンス
- Delphi 支援機能(DelphiLSP)
- C++ 支援機能(cquery)
- IDE 高 DPI、VCL フォーム デザイナの品質
- GetIt
- Android のターゲット API
- FireDAC(FDMonitor および FDExplorer を含む)
- Delphi および C++ ツールチェーンの品質
- デバッガの品質
- RAD サーバー
IDE の拡張
高 DPI VCL デザイナ
VCL デザイナは、設計時に Windows ライクなスタイルを使用できるようになりました。つまり、デザイナのコントロールは常に、このスタイルを使用して描画されます(この機能が無効にされない限り)。 Windows が現在どちらを使用していても、このスタイルは、Windows のライト テーマおよびダーク テーマと一致します。 11.0 において RAD Studio は、デザイナでの VCL スタイル の表示のサポートを追加しました。これは、実行時にアプリケーションが使用するであれスタイルを使用して設計できるようにするためです。 当時、このオプションはデフォルトでは無効となっていました。 現在、VCL デザイナがスタイルを使用するようになったため、デザイナで汎用的に VCL スタイルを使用するよう、新しいインストールよりデフォルトの設定が有効となっています。 11.2 へアップグレードした場合には、手動で有効にする必要があるかもしれません。 デフォルトの Windows ルック アンド フィールのスタイルの使用と、VCL デザイナでのスタイルの使用は、両方とも無効にすることができます([オプション|ユーザー インターフェイス|フォーム デザイナ]ページの [VCL スタイルを有効にする] および [システム スタイルを模倣する] より)。
エディタ タブ
RAD Studio バージョン 11.2 では、一部のタブ(ソース コントロールや COM 型ライブラリ エディタなど)に、通常のコード タブと簡単に区別ができるよう、別の色が与えられています。 タブがカスタム色を表示するかどうかは、新しい設定[タブ色]で制御します。
カスタム タブ色のサポートは、新しいインターフェイス INTACustomEditorView280 にある ToolsAPI を介して提供されています。
タブ上の [X](閉じる)ボタンが任意となりました。 新しい設定ページ [IDE オプション|ユーザー インターフェイス|エディタ|タブ] があり、ユーザーは、[X]ボタンの表示の仕方を次から選択できます: [always]、[never]、[for the active tab]。
デバッグ中に開いたタブが、異なる形でレンダリングされるようになり、キャプションがイタリックになります。
読み取り専用ファイルのタブでは、変更されたドットが表示されるのと同じスペースに南京錠のアイコンが表示されるようになりました。また、エディタの読み取り専用設定の動作は設定できるようになっています。デフォルトでは、RTL/VCL/FMX/include などのファイルを誤って編集する問題を防ぐために、ファイル システムのステータスと一致させています。このリリースでは、新しいオプション「読み取り専用ステータスがファイル システムと一致」が導入されています: オフにすると、IDE は、ステータスがディスク上のファイルの読み取り専用フラグと関連付けられない古い動作に戻り、ディスク上のファイルが読み取り専用であっても、変更可能とマーク表示され、エディタで編集可能となります。
CPU ビューの構文強調表示
RAD Studio 11.2 では、CPU ビューで、画面上のアセンブリ コードが構文ハイライト表示されるようになりました。 ユーザーは、[IDE オプション...|デバッガ|逆アセンブリ]でこれを変更でき、IDE のテーマ色を使用した追加の色付けなしとするか(従来の動作)、エディタの色を使用するか、選択することができます。
マークダウンのサポート
RAD Studio 11.2 IDE では、Markdown (.md) ファイルと、Markdown と HTML の見やすく整形されたプレビューの両方をサポートするようになりました。Markdown ファイルを開くと、見やすく描画されたファイルのプレビューが表示されます。Markdown と HTML は、コード エディタでのみ編集でき、整形されたプレビュー上ではできません。
Markdown ファイルのサポート:
- Email と Web のリンク。システムでデフォルトの email クライアントや web ブラウザで開かれます。
- ファイル リンク。IDE で開かれます。
- イメージ
- テーブル
これらに加え、その他の表示 Markdown 形式。
すべての画像とファイルのリンクは、Markdown ファイルの場所に対して 絶対 または 相対 のいずれかで指定することができます。現在、ローカル パスのみがサポートされています。サーバーから画像を読み込むときなど、Markdown ファイルが web リンクを参照している場合、それは読み込まれなくなります。
Markdown ファイルは、プロジェクトのデフォルト readme として設定できます。つまり、Markdown ファイルはプロジェクトが開かれた際に表示されます。 これについては、[プロジェクト|プロジェクト ページのオプション]メニューから、プロジェクトに対して設定することができます。
削除された Internet Explorer
RAD Studio 11.2 にて、組み込み Internet Explorer コントロールは、IDE 全体より完全に削除されました。リッチ HTML プレビュー、Markdown サポート、ヘルプインサイトのすべてが、ネイティブ VCL HTML コントロールを使用します。
フォントとスタイル
以前のリリースでは、一部のレジストリ キーを編集して、IDE メイン ウィンドウのフォントとフォント サイズを変更することがサポートされていました。 RAD Studio 11.2 では、IDE UI のフォントとサイズを変更するためのオプションが提供されており、[IDE オプション|ユーザー インターフェイス]ページの[IDE フォント]セクションからアクセスすることができます。 同様に、UI では、以前非表示になった設定が再度有効化され、IDE がカスタム スタイルを使用できるようになりました。 [オプション|ユーザー インターフェイス|IDE スタイル]ページでは、"ライト"、"ダーク"、"マウンテン ミスト"の各スタイルに加え、カスタム VCL スタイルが使用できるようになりました。 これらはすべて、主にアクセシビリティを支援することを目的としています。
プロジェクト ビュー
11.2 リリースでは、プロジェクト ビューで項目をダブルクリックしたときの動作が変更され、ツリーのエントリが、フォルダを表している場合にのみ展開/折りたたみが行われるようになりました。現在、ダブルクリックすると、次のアクションが実行されます:
- ユニットをダブルクリックすると、ユニットが開く
- フォルダをダブルクリックすると、フォルダを展開/折りたたみする
- プロジェクトをダブルクリックすると、プロジェクトをアクティブにする(それが、現在アクティブ プロジェクトでない場合)。アクティブ プロジェクトであったら、それを展開/折りたたみする
- C++ フォームをダブルクリックすると、ノードを展開せず、フォームを選択および開く
ダブルクリックすると、常に単にツリー ノードを展開するのではなく、デフォルトで「正しい」または期待されるアクションを実行するようになりました。
GetIt の強化
RAD Studio 11.2 では、GetIt パッケージ マネージャ ダイアログで、「言語」でフィルタをかけることができます。 このダイアログは、両パーソナリティがインストールされた RAD Studio(Delphi または C++Builder ではない)を使用している場合にのみ表示されます。 新しいフィルタでは、Delphi パッケージのみ、または C++Builder パッケージのみを一覧させることができます。 [ツール|GetIt パッケージ マネージャ]を参照してください。
パッケージ マネージャ ダイアログでは、現在、ローカル ファイルやオンライン パッケージより、パッケージをインストールできるようになりました。これを行うには、GetIt ダイアログの左下にあるフィルタ以下の [ローカル パッケージの読み込み] ボタンを使用します。これにより、インターネットに接続されていないコンピューターにパッケージをダウンロード、インストールし、公開する前に、GetIt パッケージを開発したら、チーム内の複数の開発者間でパッケージをインストールする手順を簡素化できます。この機能は、有効な更新サブスクリプションでのみサポートされています。
ウェルカム ページ
- ウェルカム ページに、[GetIt での新情報]ペインが再び含まれるようになりました。GetIt で最近変更されたパッケージを表示し、新しい、または最近更新されたライブラリとパッケージの発見を容易にします。
- デフォルトでは、すべてのプロジェクトが閉じられた際に、ウェルカム ページが再度開きます。
その他の IDE の改善点
- プロジェクトを閉じるのではなく、開いたときに[開き直す]リストが表示されるようになりました。つまり、プロジェクトを閉じる前に IDE を終了すると、最後に開いたプロジェクトが表示されます。
- リモート デスクトップで IDE を実行する際における、パフォーマンスの改善と一般的な品質の修正がいくつかあります。
- [コンパイル]進捗ダイアログと[ローカル ファイル キャッシュの更新]ダイアログ(リモート SDK の更新時に使用)は、ローカル ロケールを使用してコードの行数やバイト数を整形するようになりました(コンマやその他のセパレータで)。これにより、数値が読みやすくなります。
- 項目をより簡単に見つけられるよう、 [ファイル|新規作成|その他|継承可能項目]内のオプション群がソートされました。
- 設定を変更するために、今までは IDE の「オプション」 (例: IDE およびプロジェクトの「オプション」ダイアログなど)を使用していましたが、オプション群を開くメニュー項目によっては、変わりに「プロパティ」を使用しているものもありました。これらは名前の変更が行われ、次のものとなっています: エディタ タブのコンテキスト メニュー上に[タブ オプション]、エディタのコンテキスト メニュー上に[エディタ オプション]、エディタのステータス バーには、新しい[ステータス バー オプション].
- また、特に高 DPI に関して、IDE 全体でさまざまな品質修正が行われています。
LSP の改善(Delphi および C++)
Delphi LSP
非アクティブ コードのマーキング
RAD Studio 11.2 以降、コード エディタは、非アクティブな IFDEF 間のコードをレンダリングするようになりました。これらは、ただコンパイルされるコードとはことなり、条件によってコンパイルされる、されないが決まります。
非アクティブなコードは、背景色とブレンドされて、または半透明で描画されます。非アクティブ領域内のすべてのコードとエディタ マークアップは、コードまたは中かっこの強調表示や選択などの機能に関係なく、アクティブなコード領域と比較して抑制されます。非アクティブなコードは 1 文字まで短くできますが、多くの場合、複数行に渡ります。
DelphiLSP はこの機能を提供するため、定義されたマクロ ($define-s.)
に関する LSP サーバーの情報が反映されます。この機能は、DelphiLSP アドオンを介して VSCode で DelphiLSP を使用する場合にも機能します。
ヘルプ インサイトのための XSLT 変換
RAD Studio 11.2 では、ヘルプ インサイトに対する改善も行われています。Delphi LSP を使用して、XML 上に XSLT 変換を実行することで、HelpInsight ツールチップは生成されます。この変換を変更するには、HelpInsight.xsl を編集します。XML 内の HTML は、転送が必要な点に注意してください: この作業は、10.4 より前の機能を復旧することを目的としています。
コード補完およびツールチップ インサイトで表示される色定数
VCL または FMX の色定数(clWindow、clRed など)を補完すると、コード補完ウィンドウに、色とその 16 進数値のプレビューが表示されます。
色定数の上にカーソルを持ってくると、ツールチップに同じ色が表示されます。
C++ と cquery
Cquery パフォーマンスに関する顕著な改善が、C++ 限定 11.1.5 リリースをベースとした、11.2 に含まれています。これには、パフォーマンスの大幅な改善、プロジェクトおよびプロジェクト グループ管理の改善、CPU 消費の制限などがあります。
C++ LSP
IDE ツール オプションでは、[ツール|オプション|ユーザー インターフェイス|エディタ|言語]の、[C++ LSP]ページに、[LSP の動作]というタブがあります。 これは 11.0 から利用可能ですが、新しい 3 番目の設定[プロジェクト グループ内のすべてのファイルをインデックス付け]があります。 詳細については、ドキュメント「C++ 支援機能の設定」を参照の上、プロジェクトの動作を必要に応じて調整してください。
コンパイラとツールチェーンの改善点
Android のターゲット API
本リリースでは、Android API Level 32(リリース 11.1 での API level 30 よりアップ) を対象としています。 主な理由は、Google Play ストアにて、2022年8月以降の登録については、Android API Level 31 を必須とされ、このアップデートは 2022年11月だったためです。
Delphi(32 ビットおよび 64 ビット)および C++Builder(32 ビット)での Android ツールチェーンに関連する変更は、複数あります:
- RAD Studio と一緒にインストールされる JDK バージョンを JDK 11 に更新(最新バージョンの Android SDK とツールで必要)。
- マニフェスト属性 'targetSdkVersion のデフォルト値を 32 に更新。
- テンプレート AndroidManifest.xml を更新して、アクティビティ FMXNativeActivity の宣言にある属性 exported の値を設定(API Level 31 のサポートで必要)。
Rad Studio バージョン 11.2 は、現在 PKCS12 キーストアの生成をサポートしており、プロジェクト オプション ダイアログの[アプリケーション|使用する権限]ページに新しい権限が含まれています。 また、Android Java SDK ファインダへの更新もあり、Eclipse Adoptium JDK が利用可能な場合、他の JDK よりも優先されて使用されるようになっています。
AndroidManifest.xml の更新
以前のバージョンの Rad Studio から、Android プラットフォーム用の既存の FireMonkey アプリケーション プロジェクトがある場合には、AndroidManifest.template.xml ファイルをプロジェクトのルート ディレクトリから削除する必要があります。 AndroidManifest ページのステップに従い、FMXNativeActivity アクティビティの宣言において、AndroidManifest.template.xml ファイルがエクスポートされた属性に対して値を設定されるようにしてください。
Delphi iOS シミュレータのサポート
RAD Studio 11.2 は、Delphi に対し、iOS シミュレータのサポートを提供しています。このサポートでは、ARM-64(M1 または M2)で実行されている macOS デバイス用の iOS シミュレータ バイナリを生成する機能のみが含まれます。
RAD Studio IDE は、ARM 64 ビット用の iOS シミュレータをターゲットとするアプリケーションをコンパイル、デプロイ、実行、およびデバッグできます。
Delphi コンパイラの強化
RAD Studio 11.2 Delphi コンパイラの改善の一環として、Delphi は、上位メモリ アドレスをランダム化する機能を追加することで High Entropy ASLR(HE ASLR)をサポートして、Win64 プラットフォームの Address Space Layout Randomization(ASLR)サポートをさらに拡張しました。
C++ コンパイラとツールチェーンの改善点
本リリースでは、C++ ツールチェーンにおける品質改善が含まれています。品質向上については、次のものが含まれています:
- Ilink64 における多くの修正。
- コンパイラは、VIRDEF 最大値を超えた場合に、エラーを発生させるように。以前は、リンカでエラーを発生させていました。
- STL iostream のパフォーマンスが大幅に改善され、今までの 25 %未満の時間に。
- オブジェクト コンバータ(omf2coff)での改善。
- 遅延読み込みの改善。
- 多くのレコード ヘルパが、Delphi から C++ へ統合。
- コンパイラおよび RTL での多くの全般的な品質改善。
デバッガ
WIN64 C++ 用 LLDB
Win64 C++ デバッガを使用してリモート デバッグを実行できるようになりました。
Delphi 用 LLDB
11.2 リリースには、iOS64 および iOS シミュレータのデバッグのサポートが含まれています。
LLDB Delphi サポートには、セット、動的配列、nil、ポインタ キャスト、空文字列などの基本的なサポートを含む、Delphi 言語の認識に対して、多くの改善が行われています。
11.2 では、次のプラットフォームで LLDB デバッガが使用可能です:
- C++ Win64
- Delphi macOS ARM 64
- Delphi macOS Intel 64
- Delphi Android 64
- Delphi および C++ iOS 64
- Delphi iOS ARM シミュレータ(ARM 64)
- Delphi Linux 64
これは、LLDB に移行するための長期戦略の一部です。
Linux 版 Delphi 用 LLDB
本リリースでは、Linux 64bit プラットフォームを対象とする Delphi 用 LLDB を新たにサポートしています。Linux64 は以前は GDB を使用していましたが、基本型以外の評価に関して多くの問題が報告されていました。LLDB は大きな改善となるはずです。
標準入力(ReadLn など)を使用して Linux コンソール アプリケーションをデバッグするには、ランチャ アプリケーションの使用に関するドキュメントを参照してください。
Python 3 の接続
Linux での PAServer を介した LLDB の実行には、Python 3 をインストールする必要があり、LLDB はそれを検知することができます。Python に関するエラーが出た場合、Python 3 の設定に関する情報について、既知の問題を参照してください。
VCL および FireMonkey における変更
TEdgeBrowser および TWebBrowser における WebView2
- 新しい TWebBrowser.EdgeUserDataFolder プロパティを使用すると、ユーザー データ(Cookie、キャッシュ リソースなど)の格納場所を指定できます。
- 新しい TWebBrowser.EdgeBrowserExecutableFolder プロパティを使用すると、システムのバージョンを使用する代わりに、アプリで特定の WebView2 ランタイムを見つけて使用できます。
- Web View 2 API(VCL コンポーネントとのバイナリ互換性なし)の定義が更新され、ICoreWebView2_2 インターフェイスのサポートなどを含みます。
一般的な VCL の改善点
本リリースでは、品質に重点を置いており、以下が含まれます:
- TNumberBox 入力管理の改善
- TDateTimePicker 形式設定の改善
- フレーム内での CardPanel の使用
- TCardPanel の削除
- bsSplitButton を持つ TButton の PopupComponent プロパティの改善
- OwnerData が True の場合の TListView オーバーレイの改善
- TBalloonHint の高 DPI 問題の改善
FireMonkey
本リリースでは、新機能よりも品質とパフォーマンスに重点が置かれています。主な改善点の一部を次に示します:
- TBufferedLayout は、格納しているコントロールのスタイル更新に対応
- FMX スタイル デザイナのボタンにヒントを追加
- Metal を使用した iOS をのビットマップ処理の改善
- ダーク アイコンを持つ iOS ステータス バーのサポート
- TPathData の処理とレンダリングにおいて、品質とパフォーマンスの両面について改善。二次ベジエ曲線コマンドやその他の変換などが含まれます。
- GPU キャンバスでの TPath のレンダリング速度が向上
- TListBox にて、Shift+クリック による範囲選択をサポート
RTL とデータ
FireDAC reFind ユーティリティ
reFind ユーティリティは、dbGo プロジェクトの FireDAC への移行をアシストします。 移行スクリプトに加え、互換性ユニット FireDAC.ADO.Migrate.pas もあります
reFind.exe でコード置換を行う際、新しいオプションを使用すると、「古いターゲット コードを削除する代わりにコメントとして残す」ことができます。新しい /C スイッチを使用すると、コード削除の代わりにコメントアウトすることができます。
更新された FireDAC ドライバ
FireDAC は、最新の Microsoft ODBC Driver for SQL Server(バージョン 18)をサポートしています。
M1 上の MacOS から、SQL_C_WCHAR
の処理の改善により、MSSQL ドライバが改善されました。
MongoDB の新しいトランザクション機能のサポートが追加されました。主な MongoDB API は FireDAC.Phys.MongoDBWrapper.pas ユニットにあります。新しいトランザクションのサポートは、次の新しい API によって提供されています:
- TMongoTransactionOptions クラス
- TMongoSession クラス
- TMongoConnection.NewSession メソッド
- TMongoCollection.Session メソッド
FDMonitor と FDExplorer
FDMonitor ツールが改善されました。特に以下の点においてです:
- FDExplorer / FDMonitor で、SQL ビューにて構文の強調表示を追加
- FDMonitor に、SQL コマンドのみを追跡するための、新しい SQL 出力 ビューを追加
- FDMonitor に、SQL 出力 ビューを追跡するための新しいオプションを追加
- FDExplorer / FDMonitor に、検索 / 次を検索 コマンドを追加
- TFDMoniEventKind に、SQL 出力 への出力を生成するための、新しい項目(ekSQL、ekSQLVarIn、ekSQLVarOut )を追加
- ekVendor 除外時、トレースを使用する ODBC ドライバの最適化
- TFDConnectionDef 読み込みの最適化
- FDExplorer / FDMonitor の両方にて、高 DPI でのフォント サイズの改善
さらに、組み込みの FireDAC SQL テキスト プロパティ エディタでは、SQL 構文の強調表示、行番号、および Ctrl+F、Ctrl+R、F3、Alt-G などの一般的なショートカット キーをサポートするようになりました。
RTL の強化
Delphi RTL の改善点は次の通りです:
ZLib
最近パッチが適用された脆弱性に対応するために、統合 ZLib を 1.2.12 に更新しました。圧縮済みファイルでなく「格納された」ファイルを使う、コメントの管理、切り捨てられた Zlib データによる ZDecompressStream の動作などを含む、その他の ZIP ファイルの動作が改善されました。★System.Zip はまた、Linux でシンボリック リンクを保持できるようになりました。
小さなデータ パッケージを作成するときの Zlib のパフォーマンスが改善されました。
一般
- System.Classes.pas に新しい TProxySubrangeStream クラスを追加。この新しいストリーム クラスは「別のストリームの一部分の範囲」を表し、プロキシとして機能します。
- PCRE 正規表現エンジンは、有効な JIT でコンパイルするため、パフォーマンスが大幅に向上します。さらに、ライブラリはプロシージャ TPerlRegEx.Study を TRegEx レコードで公開するようになりました。
- RTTI 関連の改善点には、const パラメータを持つ TVirtualMethodInterceptor、pascal 呼び出し習慣でのメソッド起動、iOSDevice64 における float 値での TVirtualInterface の問題の改善などが含まれます。
- TStringHash、InternalUniqueStringA、InternalUniqueStringU などのいくつかのコア関数に加えて、2 つのシステム ユニット関数、_UStrEqual と _UStrCmp、および SysUtils.CompareStr を最適化しました。
- System.SysUtils.StrToFloatDef は数値例外マスクを変更しなくなりました。
HTTP および REST クライアント ライブラリ
TRestRequest の MIME タイプと multipart/form-data の処理が改善されました。さらに、Windows のプロキシ検出が改善され、Android の THTTPNetClient SSL 証明書チェックが改善されました。
RAD サーバー
RAD サーバーの改善点:
- RAD サーバーの新しい認証トークン/セッションの有効期限。RAD サーバー設定(EMS.INI)には、SessionTimeout と呼ばれる新しいパラメーターが追加されています。★また、FireDAC 設定ファイル FDConnectionDefs.ini および FDDrivers.ini へのパスを指定するため、emsserver.ini に新たに設定オプション群も追加されました。
- TEMSFireDACClient.PostUpdates をカスタム セッション トークンで使用可能に。
- 改善された TEMSFileResource のリスト関数
- RAD Server Lite における誤った 2 つのユーザー制限を削除
- IP アドレスと DateTime を RAD Server のログに追加
- 結果セットに基づいて永続フィールドを作成できるよう、 TEMSFireDACClient コンポーネント(TRESTRequest コンポーネントと同等)を[実行]コンテキスト メニューの項目に追加。
コマンド ラインおよび ToolsAPI を介した SKU およびプラットフォームのクエリ
RAD Studio 11.2 では、サードパーティ コンポーネントまたはプラグイン ベンダーは、どの SKU がインストールされているか(Architect、Community など)、どのプラットフォームがインストールされているか(Win64、macOS ARM など)、どのパーソナリティがインストールされているか(Delphi または C++Builder またはその両方)、およびトライアル版かどうか、クエリをかけることができます。SKU のクエリは、いつコンポーネントをインストールするか、インストーラに含めるか、そして、IDE 自体の設計時の動作の変更を決定する場合などに便利です。
bds.exe を新しい /ProductInfo:KIND
パラメータで実行し、コンソールの出力を取得します。 KIND は、Trial、SKU、Platforms、Personalities を指定します。新しいパラメータの詳細については、General options for BDS.EXE ページを参照してください。
新しい IOTAVersionSKUInfoService インターフェイスでは、インストールされたプラットフォーム、SKU のリスト、または IDE がトライアル版で実行されているかどうか、問い合わせることができます。