12 Athens - Release 1

提供: RAD Studio
移動先: 案内検索

メインページ への移動

以前のリリースでの新機能 への移動

RAD Studio 12.1 Athens の更新版がリリースされました(2024年3月XX日)。

メモ:
  • バージョン 12 Athens での新機能についてはこちらから参照してください。

RAD Studio 12 Athens - Release 1(別名 12.1)がインストール可能となりました。 RAD 12.1 は、RAD Studio 12 の機能セット上に構築されており、製品全体にわたって既存機能の強化と、新機能の追加が行われています。

RAD Studio 12.1 は、品質向上に特にフォーカスしていますが、C++ ツールチェーンと IDE においては機能拡張を顕著に行われています。主な機能と品質向上が行われた領域は次のとおりです:

  • C++ Clang ツールチェーン
  • 分割エディタ
  • IDE
  • デバッガ
  • Android ターゲット API レベル 34
  • Vcl
  • VA
  • Delphi コンパイラ
  • その他のライブラリ

12.1 における製品領域での主な強化

C++ Clang ツールチェーン

RAD Studio 12.1 では、IDE に、アップグレードされた Clang ツールチェーン for Win64 が統合されています。

=link

標準プラットフォームであるフル統合 IDE を備えた新たなツールチェーンです。ツールチェーンには、新しい Clang 15 コンパイラ、LLVM lld リンカ、libc++ STL、UCRT C ランタイムなどが含まれています。

ツールチェーンは、既存の Win64 プラットフォームと並行して出荷されており、VCL および FMX サポート、DLL、静的ライブラリ、コンソール アプリケーションを含んでいます。IDE でターゲット プラットフォームを右クリックし、Win64 (Modern) を追加します。

できることは?

ツールチェーンは、VCL と FMX を使用して実際のアプリケーションですぐにテストが可能です。IDE は完全に統合されており、適切なオプションをコンパイラ ドライバとリンカに送信します。特別な回避策やコンパイラ コマンドライン フラグは必要ありません。

動的パッケージの設定に関係なく、アプリはパッケージを静的にリンクする点に注意してください。

=link

上の画像は、新しい Clang ツールチェーンを使用した FireMonkey Mazes アプリの例(Github からの)を示しています。

制限事項

  • SOAP などの一部のライブラリは、このツールチェーンに含まれていません。これは、テスト表の削減や、品質のために最も必要とされるライブラリに集中するためです。利用可能なライブラリ/パッケージの完全なリストは以下に記載されています:
  • パッケージ(VCL など)はアプリに静的にリンクされます。RAD Studio 12.1 は動的パッケージの使用、つまり 12.1 における EXE と共に配布される BPL ファイルへの動的リンクは提供していません。パッケージの内容は、プロジェクト オプションの「ランタイム パッケージ」の設定に関係なく、EXE に静的にリンクされます。
  • C++ で記述されたパッケージの作成。RAD Studio 12.1 は現在、Delphi で記述されたパッケージのみをサポートしています。

特記事項

仮想ファイル システム

IDE は仮想ファイルシステム(VFS)を保持しており、ここではプロジェクトやファイルの作成、既存ファイルの変更、そして、それをディスクに保存しなくても、コンパイルおよび実行することができます。

以前は、すべてのツールチェーンにこれを可能にするコンパイラとリンカの DLL 版があり、IDE VFS にフックされていました。12.1 では、新しい Clang アップグレードは Clang VFS オーバーレイを使用します。

一時 VFS ファイルは、デフォルトではコンパイル後に削除されます。これをオフにするには、[プロジェクトのオプション|C++ コンパイラ|詳細]で、オプション[コンパイル後一時 VFS ファイルは削除します]にチェックを付けます。

POSIX とその他 RTL メソッド

RAD Studio は決してRTL メソッドの標準 Windows セットに完全準拠はしておらず、多くの POSIX バージョンとカスタム RTL 関数を提供しています。そのうちの一部は現在ない可能性があります。

C++ 標準互換性

RAD Studio は libc++ バージョン 15.0 を使用しています。以下で言語標準準拠を確認してください:

メモ: フォーマット ライブラリは、libc++ 16 よりサポートが導入されています。このため、RAD Studio 12.1 ではまだサポートされていません。({fmt} ライブラリは動作するはずですが、テストはされていません。)Parallelism TS、スペースシップ オペレータといった他の項目については、libc++ にありますが、バージョンがまだドキュメントに記載されていません。

ライブラリとパッケージ

新しい lld リンカは ilink よりはるかに高速になりました(約4倍高速に)。より大きなファイル サイズも簡単に処理できるため、動的リンクが、リンク時間やリンカ メモリのための必須の対策ではなくなりました。

動的なパッケージの使用はアーキテクチャ上の理由から重要であり、RAD Studio は将来のリリースで動的にリンクする Delphi ランタイム パッケージをアップグレードする予定です。

パッケージ ドキュメント ページで、含まれている/含まれていないライブラリのリストを確認してください。

分割エディタ

RAD Studio 12.1 では、IDE における分割エディタ ビューのサポートが追加されています。複数のエディタを同じウィンドウ内で並べて使用したり、上下に並べて使用したり、組み合わせて使用​​したりできます。これには、タブのセット全体をフローティング ウィンドウにドラッグして IDE に戻す作業が含まれます。

RAD Studio は、高度な方法で分割エディタ ビューを実装しており、複雑なカスタム レイアウトと操作を可能にしています。具体的には、単純な 2 列レイアウト、複数行レイアウト、または自分のワークフローに合わせてカスタマイズしたものを使用することができます。

複数のタブを開き、すべてのタブで同じユニットを編集したり、あるタブでは 1 つのフォーム デザイナを、他の複数のタブではそれと同じユニットのコード タブを、という複数のタブを開いたりすることができます。これには、デザイナを表示するタブの移動も含まれます。水平または垂直に分割するエディタの数に制限はありません

分割エディタの利用

分割エディタ ビューにアクセスするには、タブを右クリックし、[分割 >]または[移動 >]を選択します。[分割]は選択したタブをもう 1 つ作成し、[移動]はそのタブを閉じ、IDE 内の選択された場所にそれを開きます。


=link


代わりに、プロジェクト ビューから開いている任意のエディタにファイルをドラッグすることで、分割エディタを使用することができ、そのタブ グループの 1 つのタブとしてファイルを開くことができます。

ウィンドウに 2 つのタブが現れると、両方にタイトル バーが設定されます。次のことができます:

  • エディタ タブまたはタブのセットのドラッグ。タイトル バーをドラッグし、IDE ウィンドウの横にドッキングします。
  • タブを他の既存のエディタの辺(上下左右)にドラッグ&ドッキング
  • タグを既存のタブ セットにマージ。タブのフローティング ウィンドウをドラッグしてマージするなど、タブを既存のエディタの中央にドラッグします。
  • タブを外にドラッグして単独のウィンドウに(タブが 1 つの、または タブ セットの)

ある場所から別の場所で個別のタブをドラッグすることにより、ドッキングされたタブ セット間でタブを移動するなど、ほとんどの操作は個々のタブで実行できます。

タブの各セットをドラッグして独自のウィンドウにすることも可能です。移動させるにはタイトルバーをドラッグしてください。(Ctrl キーを押したままドラッグすると、ドッキングせずにフローティング状態になります。)

同様に、各ウィンドウは、タブの別のセットの隣にドッキングさせることもできます。これを行うにはそのタイトル バーをドラッグしてください。

メモ: 大抵のエディタ/グループは、閉じると消えます。ただし、メイン ウィンドウの唯一のエディタであった最初のエディタを「X」ボタンで閉じると、そのエディタに保持されているすべてのタブが閉じられます。それでも、そのためのスペースは開いたままになります。元のエディタは閉じることができず、常に画面上にそのためのスペースが残されます。タブグループを閉じるまで、これは何の影響も受けません。日常の作業でこれらを作成、移動、またはドッキングしても、目に見える影響はありません。

デザイナとコード

分割エディタは、同じファイルを自分自身の隣で編集できるようにできます。両方のエディタとも、同じファイルの内容を表示させます。一方に入力すると、他の方にも同じ場所にスクロールすると、そのテキストが現れます。

しかしながら、両方のビューを個別にスクロールすることができ、複数の位置で同じファイルを編集することができます。同じファイルを編集するタブはいくつでも使用できます。

メモ: ファイル(内部用語ではモジュールまたはファイル バッファ)は 1 つだけですが、そのファイルは複数のエディタで表示されるため、1 つのエディタで行った変更は、同じファイルに対する他のすべてのエディタに常に反映される点に注意してください。 1 つのエディタで行われた変更は「コピー」や「複製」などされるわけではありません:存在するのは 1 つのファイルそしてそのファイルに対する 1 つの内容だけであり、それは、そのファイルを参照/編集する複数のエディタを開いても変わりません。これを言い換えると、1 つのエディタでファイルを編集すると、その変更はエディタではなくファイル自体に反映されます。 定義上、これは、同じファイルを表示している他のエディタにも変更が常に存在することを意味します。

フォーカスの追跡

RAD Studio の UI デザインの重要な原則は、フォーカスを明確にすることです。 RAD Studio 12.1 より前のバージョンでは、一辺にドッキングされたウィンドウであっても、エディタ タブ(つまりソロの)であっても、現在フォーカスされているウィンドウは強い青色でした。

複数のエディタがある場合も同じテクニックが適用されますが、タブ グループのタイトル バーと特定のタブは青一色になります。これはそれを本当に明確にするためです。

フォーカスされているエディタがないエディタ グループは、淡い「背景」のタイトル バーとなり、その最前面のタブ(そのグループがフォーカスされている場合にフォーカスされるタブ)さえも灰色で、フォーカスされていないことを示します。

ドッキングとレイアウト

12.1, RAD Studio より、オブジェクト インスペクタといったペインを、好きな場所に移動およびドッキングできるようになりました。実際には、これは、ドッキング可能なウィンドウ(オブジェクト インスペクタ、構造ビューなど)と、ドッキング可能なエディタ/エディタ グループの間にはほとんど違いはなく、ニーズに合わせて強力なレイアウトを作成できることを意味します。

デスクトップ レイアウトは、開いているエディタ((およびエディタ グループ、その場所、ドッキングされている場所など)と古いスタイルのドッキング可能なペインのセットであり、それぞれに複数のタブのセットを持つ複数のウィンドウを含めることができます。

エディタの構成はデスクトップ レイアウトとして保存されることが必要であり、そうでなければ簡単に失われてしまいます。

さらに、IDE がデバッグを開始してデバッグ レイアウトに切り替わるなど、デスクトップ レイアウトが変更されると、構成も変更されます。レイアウトが変更された際、レイアウト内の切り替え後に場所がなくなってしまうタブ グループ(個々のタブの可能性も。個別にドッキングされている場合)は、ドッキング解除されてフローティング ウィンドウとなります。

IDE の向上

DelphiLSP コード補完

RAD Studio 12.0 ではコード補完機能を追加しており、入力時にコード補完が自動的にポップアップされます。DelphiLSP より前のこの機能では、ドット(.)入力時のみ、または手動で呼び出した場合にのみ表示されるのではなく、役立つ提案のリストを提供するものです。

ただし、入力すると自動的に表示されるため、新しい変数名などの特定のものを入力するのが困難になることがよくありました。これはそれらが提案されないためです(以前は未知の識別子だったため)。Space キーを押すと、コード補完が先頭の項目を受け入れ、入力内容が上書きされます。

RAD Studio バージョン 12.1 では機能が改善されており、自動呼び出し機能が On でコード補完が自動的に表示される場合、Tab キーや Enter キーを押すだけで、現在選択されている補完が採用されるようになりました。その他のキー(Space、開き中括弧、ドットなど)では機能しません。これは、コード補完が自動的に呼び出されるときに、補完を受け入れることを選択する必要があることを意味します。誤って何かが入力されてしまうことはありません。

コード補完が通常どおり呼び出される場合、11.3 以前と同様に、これらのキーは提案された内容を採用します。これは、以前の通常コード補完と、すべての動作が変わらないことを意味します。

自動呼び出し機能はデフォルトで Off になっています。オンにして、コード インサイト ドキュメントの新しい補完キー タブの詳細を確認してください。

デバッガ

バージョン 12.1 では、Delphi Win32、Delphi Win64、および C++ Win32 以外のすべてのデバッガは LLDB 15 を使用します。これは、Clang アップグレードで使用されるのと同じデバッガです。

以前のバージョンでは、これらのプラットフォームに LLDB 12 が使用されていましたが、アップグレードされました。

Android ターゲット API レベル 34

RAD Studio バージョン 12.1 では、Android API レベルが 34 に更新されています。この変更には、Android SDK ツールへの変更、いくつかの追加の Android プラットフォーム ツール、および Java ランタイムの更新が必要です。詳細は次のとおりです:

  • バージョン 12.1 では、これらはプラットフォーム機能内にインストールされ、Eclipse Temurin JDK OpenJDK 17 (Hotspot) JVM を推奨します。
  • バージョン 12.1 は、コマンドライン ツール Android SDK コンポーネントを、Android SDK のデフォルト インストールで更新します。
  • デフォルトの targetSdkVersion マニフェスト属性は、現在 34 です。

RAD Studio 12.1 では、Packager コマンドライン ツールで Google の zipflinger ライブラリと Signflinger ライブラリを利用しているため、.apk ファイル作成のパフォーマンスが大幅に向上しています。以下は、Android パッケージにおける向上点です:

  • Android DEX 処理(DEX コンパイルと DEX マージ)はインクリメンタル的に行われるようになりました(入力ファイルが出力ファイルと比較して古いとみなされる場合にのみトリガーされます)。
  • バージョン 12.1 では、ビルド システムが、古い非推奨の Google の AAPT コマンドライン ツールから、新しい Google の AAPT2 ツールに移行されました。
  • Google の AAPT2 コマンドラインを使用して、各 Android リソース ファイルをコンパイルし、それらを、マニフェスト ファイルと Android リソース テーブルを含む .zip ファイルに、まとめてパッケージ化するようになりました。
  • 新しい Packager コマンド ライン ツールは、パッケージ化されたリソース ファイル、ネイティブ ライブラリ、アセット ファイル、および .dex ファイルを、最終的な .apk ファイルまたはベース モジュール ファイルに入れます。

品質の向上

Vcl

  • 最近のバージョンの Windows における新しい簡易アクセス テキスト カーソルで、VCL TEdit が正しく動作できるようになりました。このようにして、この問題によりデフォルトで無効になっていた IDE へのアクセシビリティを元に戻すことができました。IDE での JAWS の利用も、デフォルトで再び動作するようになっています。
  • NumberBox の負の値を扱いが改善されました。
  • ProgressBar State が VCL スタイルでサポートされるようになりました。

Visual Assist for C++

  • ファイルを保存せずに閉じた場合に VA にキャッシュが残る問題を解決しました。
  • 名前を変更すると、イベント ハンドラの名前も変更されるようになりました。
  • コンポーネントの名前変更にはデザイナでの名前の変更が含まれます。これは 12.0 ではなかった機能です。
  • オブジェクト プロパティでのコード補完が正しく機能するようになりました。
  • コード補完の結果に予期しない値が表示されなくなりました。
  • コード補完がトリガされない問題が解決されました。
  • VA がサードパーティ ライブラリで動作しない問題が解決されました。
  • <“” での、#include プリプロセッサ指令の自動補完が正しく機能するようになりました。
  • メニューにおける UI の小さな改善。

その他のライブラリ

RAD Studio 12.1 は、データベース領域において次の改善が行われています:

  • TIBDataSet エディタ(IBX)の改善。
  • Firebird バージョン 5 に対する FireDAC サポートの追加。これには、Firebird 5 に対して、TFDFBBackup での並列オペレーションのサポートが含まれています。
  • PostgreSQL バージョン 16 に対する FireDAC サポートの追加。
  • IBToGo および IBLite の最新バージョン(InterBase 2020 Update 5 対応)が Android で動作するようになりました。

FireMonkey について、12.1 では次のことが行われています:

  • macOS では、非透過形式で保存された透過ビットマップは、Windows と同様に動作します(つまり、透明色が黒になります)。

インターネット空間では、12.1 には次のものが含まれます:

  • TRestClient は、現在のユーザー リストだけでなく、ローカル マシン リストからの証明書の使用をサポートします。
  • StringToColor 関数での Web 16 進数カラー構文のサポート。
  • REST デバッガがテーブルのセルから値をコピーする機能。
  • RAD サーバー ユーザーのユーザー名を変更する機能。

関連項目