What's New
メインページ への移動
以前のリリースでの新機能 への移動
RAD Studio 13.0 Florence リリースでは、以下のような新機能の追加や既存機能の改良が行われています。
目次
インストールと GetIt パッケージ マネージャの機能強化
次のセクションでは、インストーラと GetIt パッケージ マネージャの改善について詳しく説明します。
インストール プロセスの更新
RAD Studio Florence 13.0 より、インストーラは Windows SDK を自動的にインストールしなくなりました。 代わりに、SDK の現在のバージョンがコンピュータにインストールされているかを確認し、インストールされていない場合には、インストール中にインストール リンクを提示します。 Windows SDK のダウンロードとインストールは、RAD Studio の前提条件となりましたので、RAD Studio 13.0 をインストールする前にインストールすることをお勧めします。 詳細については、インストール ノートをご覧ください。
Windows SDK をインストールする際には、次のオプションを有効にすることが推奨されます:
- デスクトップ C++ x86 アプリ用 Windows SDK
- デスクトップ C++ amd64 アプリ用 Windows SDK
すると、それにより次が自動的に有効化されます:
- デスクトップ アプリ用 Windows SDK 署名ツール
- UWP 管理アプリ用 Windows SDK
- UWP C++ アプリ用 Windows SDK
このリリースでは、RAD Studio IDE(32 ビット版と 64 ビット版の両方)から、モデリング 機能をインストールする機能が削除されました。そのため、この機能は機能マネージャの追加インストール オプションから削除されています。 これは、Delphi の形式にも影響します。.
GetIt パッケージ マネージャにおけるパッケージのバージョン管理
RAD Studio Florence 13.0 以降、単一の GetIt パッケージが複数のバージョンで利用可能になり、最新バージョンではない、特定のバージョンを選択してインストールできるようになりました。 パッケージに複数のバージョンがある場合は、インストール ボタンのドロップダウン メニューにそれらが表示されます。
プロジェクト構成内のパッケージ依存関係は、パッケージの特定のバージョンを参照できるようになり、いくつかのフィルタリング ルールが利用可能です。
また、GetIt UI には、主な操作を行うための汎用コマンド ボタンが集約されており、その他の機能(アンインストールやアップデートなど)については、それを提供するドロップダウン メニューが用意されています。 同様に、インストール済みパッケージのリストをエクスポートする機能も追加されました。 詳細については、「GetIt パッケージ マネージャ ウィンドウ」のページを参照してください。
内部バージョン番号を 37 に統一
このリリースで、RAD Studio は、RTL、パッケージなど、次のすべての内部バージョン番号を 37 に統合しました:
- メインのレジストリ エントリ:
HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\37.0
- パッケージ バージョンと RTL バージョン
- FMX バージョン: FMX.Types.FireMonkeyVersion
- PA サーバー バージョン
- 製品がデフォルトでインストールされるフォルダ:
C:\Program Files (x86)\Embarcadero\Studio\37.0
このリリースでは、IDE インストール フォルダとランタイム パッケージについては、多くの番号をスキップし現行バージョンから 37 へと移行していますが、コンパイラ バージョンについては 1 つしか上がっていません。
64 ビット IDE の改善
RAD Studio 13.0 には、Windows 64 をターゲット プラットフォームとする、弊社初のフル機能版 64 ビット IDE が搭載されています。 RAD Studio バージョン 12.3 で最初に導入された 64 ビット IDE の機能とサポートを拡張、補完していっています。 12.3 での 64 ビットIDE の「初期リリース」と比較すると、13.0 の 64 ビット IDE では、64 ビットWindows アプリケーションのビルドとデバッグに対して、Delphi と C++ のサポートを提供しています。
次は、主な更新点です:
- [囲む]メニューなど、コード テンプレート〔Ctrl-J〕のサポート
- タイプ ライブラリ、ActiveX、COM のサポート
- 64 ビット IDE での C++Builder インテグレーション用の VA
- C++ および Delphi アプリケーションをデバッグするための新しいデバッガ エンジンを実装
- Delphi デバッガのパフォーマンスの大幅な向上
- ポインタ アドレスを Delphi スタイルに近い形に
- Together ベースの機能(モデリング、検査、測定など)を削除
IDE の変更と機能強化
このリリースでは、RAD Studio IDE が改良され、多くの IDE ペインに拡張可能かつ設定可能な検索機能が追加されました。 以下のセクションでは、この機能と IDE 領域におけるその他の改良点と変更点について詳しく説明します。
検索機能の改善
RAD Studio Florence 13.0 では、様々なペインに専用の検索機能が導入され、大規模プロジェクト、ユニット、その他のシナリオにおいて、より迅速に情報にアクセスできるようになりました。 検索の操作感は、検索をサポートするすべてのペインで統一されており、Ctrl+F
を使用します。 Esc
キーで検索結果が閉じられ、フォーカスが元のコントロールに戻ります。
検索機能は、以下に記載されているセクションに追加されています。
- 構造ビュー: 設計ビューとソース コード ビューの両方をサポートするインクリメンタル検索が追加され、ソース コード検索結果で構文の強調表示が提供されるようになりました。
- プロジェクト マネージャ: 高速クエリをサポートし、大規模プロジェクト(20,000 ファイル以上を含む)向けに最適化された、インクリメンタル検索が追加されました。
- メッセージ ペイン と イベント ログ: 大規模なデータ構造をナビゲートするのに役立つ、インクリメンタル検索の関数が追加されました。
- オブジェクト インスペクタ: 手早いナビゲーションのための検索アイコンが追加されました。
- ツール パレット: 手早いナビゲーションのための検索アイコンが追加されました。
また、メッセージ検索とイベント検索に実装された新しい検索機能だけでなく、プロジェクト検索と構造ビュー検索でも、ドロップダウンで利用できる、専用の検索設定が提供されています:
メッセージ ログの追加
RAD Studio Florence 13.0 は、次の新しいオプションを、[IDE|コンパイルと実行|ビルド ログ]に取り入れています:
- コンパイラ ログでの強調表示を有効化します。
- IDE に、メッセージ ペインのヒントと警告をグループ化するよう指示します。これにより、多数のメッセージを参照する際の明確性が向上し、ビルドの処理を高速化できます。
ToolsAPI の更新
RAD Studio Florence 13.0 リリースでは、次の更新を ToolsAPI に対して行っています:
- ウェルカム ページの UI を更新するための新しいメソッドの追加。
INTAWelcomePageDataPluginListView370.Invalidate
- マウス イベントをクリック時にインターセプトするためのサポートの追加。
上記の更新の詳細については、ToolsAPI のページを参照してください。
Smart CodeInsight の改善
RAD Studio Florence 13.0 では、Web ベースの「RAD AI Companion」が導入されました。これは、RAD Studio 関連コンテンツに特化したチャットおよびコード ジェネレータです。 IDE では、[ヘルプ メニュー|RAD AI Compnion]で開きます。
また、今回のリリースでは、新しい[接続テスト]ボタンが スマート支援機能のオプション ページに追加されています。これにより、ユーザーはチャットで試行することなく、直接設定をテストできるようになりました。
その他の改善点は次のとおりです:
- 実際の情報を返す前に、レスポンスの一部として
“<think>”
を返すモデル。これについては、IDE が “thinking” タグを削除します。 - スマート支援機能のチャット ウィンドウ におけるボタンのヒントを改善し、ショートカットを表示するようになりました。
その他の IDE での変更
次のセクションでは、IDE で行われてた、その他の更新と機能強化について詳しく説明します:
- ユーザーが、エディタ タブのエディタ背景色を使用できるよう、新しい IDE オプション[タブ]が導入されました。
- 構造の強調表示にアクティブになっている IDE テーマを使用するための、新しい IDE オプションが導入されました。これを使用すると、構造の強調表示に使用される、カラー スタイルを選択することができます。
- ダブル バッファリングとちらつき除去が、デフォルトで有効になりました。また、新しいレジストリ設定(
Globals\SingleBufferingInRemoteSessions
)を使用して、ダブル バッファリングを上書きすることもできます。 - アクティブなリファクタリング オプションがない場合に、「リファクタリングなし」とサブ項目を表示するのではなく、リファクタリング メニューが淡色表示されるようになりました。
- IDE 例外ダイアログは、呼び出しスタック トレースを直接表示するようになり、コードの流れを理解するための重要な情報が提供されるようになりました。
- 構造ペインからのエラー メッセージをコピーする機能が追加されました。
- [プロセスにアタッチ]ダイアログ ボックスが再設計され、さまざまな UI コントロールの他、プロセスについての情報を表示する列が追加されました。
- Git ソース管理インテグレーションも改善され、ユーザー名とパスワードの代わりに GitHub トークン名またはトークン キーを使用できることについて、ヒントを示すよう、UI が変更されました。
- フォームを FireMonkey アプリケーションに追加する際、HD フォームと 3D フォームで、どちらかを選択する必要がなくなりました。3D フォームを追加するオプションは、別途引き続き利用できます。
- ダーク テーマ モードの左余白のアイコンが改善され、画像の周囲の白い境界線が除去されました。
IDE ツールの改善
RAD Studio には、Delphi および C++ 開発者がアプリケーション コードを容易に記述できるようにするための強力なツールが搭載されています。次のセクションでは、各種 IDE ツールの改善と更新について詳しく説明します。
DelphiLSP
このリリースでは、DelphiLSP アーキテクチャの改善に向けた作業が継続されています。特定の Delphi のユーザーのご要望にお応えするため、しばしの間、コード補完機能のための、旧バージョンの "クラシック" Delphi 支援機能エンジンを、再びご利用いただけるようにしました。RAD Studio 13.0 では、IDE 内の DelphiLSP ベースのバージョンの代わりに、このエンジンをご利用になりたい方は、どなたでもご利用いただけます。
クラシック支援機能マネージャ を有効にすると、DelphiLSP に移行された一部の機能に影響します。それらには、構造ペイン、エラー インサイト、エディタ ナビゲーション バー(コードをナビゲーションするために使用される、エディタの上部にあるツールバー)などがあります。これらの機能は、クラッシック支援機能マネージャを有効にすると動作しなくなり、また、これらの変更を元に戻す予定はありません。
クラシック支援機能
マネージャは、次の画像に示すように、[ツール|オプション|エディタ|言語|[支援機能]タブ]で有効にできます。
Delphi アドバイザ ウィザードのアップグレード
RAD Studio 13.0 では、新たに Delphi アップグレード アドバイザ ウィザードが導入されており、これにより開発者は、プロジェクトの設定やコードへの重要な変更を特定でき、コンパイル時間やコード ツールの操作性を、大幅に向上させることができます。ウィザードは、単独の GetIt パッケージとして提供されています。一旦インストールすると、IDE のドロップダウン メニューに追加されます。
Delphi アップグレード アドバイザ ウィザードでは、特定の提案を提供するほか、reFind スクリプトが同梱されており、これを使用してプロジェクトの uses 文をクリーンアップすることができます。
Visual Assist for C++
RAD Studio Florence 13.0 では、VA インテグレーションが改善され、RAD Studio がツールチェーンやプロジェクト設定の管理方法に対する統合性が増しました。
プロジェクト設定やターゲット プラットフォーム、ツールチェーンを変更すると、VA が自動的に再読み込みするようになっています。 これにより、同一プロジェクト グループ内で、異なる設定を使用している複数のプロジェクトで作業している場合でも、インクルード パスやシンボル解決の精度が維持されるようになりました。 詳細については、「Visual Assist for C++」ページを参照してください。
デバッガの更新
このリリースでは、Windows 64 ビット Modern プラットフォーム用の Clang コンパイラのバージョン 20 への更新とともに、デバッガが LLDB バージョン 20 に更新されています。
次のリストは、デバッガに施されたその他の改善や品質作業です:
C++ の場合:
- OutputDebugStringW の Unicode 出力の処理方法が改善されました。
- デバッガ出力時に、印字されないワイド文字値が、正しい形式を使用して表示されるようになりました。
- argc と argv が、デバッガでの実行の際に、スペースを含む引数を適切に処理するようになりました。
Delphi の場合:
- スコープ付き列挙値は、宣言された型の内部に適切に保持されるようになり、グローバル名前空間での競合が回避されるようになりました。また、これらの値はデバッガ ビューで正確にレンダリングされるようになりました。
- オブジェクト メンバー セットの値が、デバッグ中に正しく表示されるようになりました。
- クラス変数名が、改善された名前変換により、正しく解決されるようになりました。
- Unicode 変数の処理が改善されました。デバッガはより広い範囲の Unicode 識別子を許容するようになっています。
また、IDE オプションにおいて、デバッグ ウィンドウの コードの強調表示を有効にすることもできます。
リソース コンパイラ
このリリースでは、RAD Studio のリソース コンパイラのインテグレーションに対して、調整が行われています。
Florence 13.0 より、RAD Studio は、オープンソースのリソース コンパイラ「resinator」を新たに配布するようになりました。これが、ビルド システムのデフォルトになっています。resinator の詳細については、「GitHub resinator」を参照してください。
また、異なるリソース コンパイラ(Windows SDK の従来のリソース コンパイラなど)も簡単に選択できるよう、新しいオプションも追加されています。
Delphi コンパイラへの更新
RAD Studio 13.0 では、新しい三項演算子から、新しいコンパイラ指令まで、Delphi 言語に複数の改良が施されています。
If 条件演算子
RAD Studio Florence 13.0 リリースでは、条件演算子(三項演算子)が Object Pascal 言語に導入されています。動作は、一般に他のプログラミング言語で見られる ?:
演算子と同様ですが、構文はより馴染み深く Pascal 指向で、if-then-else 構文に似ています。
例と詳細については、「条件演算子(Delphi)」ページを参照してください。
新しい演算子 “is not” と “not in”
コンパイラで新しい演算子 “is not”
と “not in”
が使用可能になりました。これらは、既存の複合演算子の、短縮された判読性の高いバージョンです。例を Delphi の式のページで参照してください。
新しい指令 “noreturn”
“noreturn” 指令は手続きに関連づけられる属性で、呼び出しがこれから例外を発生させ、通常の実行が完了しないことを示します。これによりコンパイラは、未定義の結果についての警告をスキップし、最適化とコード削除が可能になります。例を、「Delphi 宣言と文(Delphi)」ページで参照してください。
この新しい指令は、例外が発生した際に、適切な値の代入を防ぐ可能性のある W1035 警告 を回避するのに役立ちます。例を、「W1035 関数 '%s' の戻り値が設定されていません (Delphi)」ページで参照してください。
指令 {$PUSHOPT} と {$POPOPT}
これらの新しい Delphi コンパイラ指令は、現在のオプションのセットと警告の設定を、保存および復元します。
このリリースでは、次の不均衡指令の警告が追加されました。
ファイル内で、$PUSHOPT が $POPOPT より多い場合、ソース ファイルの終わりで同じ警告が生成されます。すべてのオプションと設定がこれらの新しい指令に対応しているわけではありません。対応オプション のリストを参照してください。
{$IFOPT} 指令に対する長い指令のサポート
RAD Studio Florence 13.0 より、{$IFOPT
} 指令は長い指令をサポートするようになりました。例は次のとおりです:
{$IFOPT SCOPEDENUMS ON}
サポートされる指令の全リストについては、$IFOPT ページを参照してください。
ジェネリック型の新しい制約
ジェネリック型に対して、新しい制約 "interface”、"unmanaged” が追加されました。unmanaged は、既存のレコード制約の一部置き換えです。
また、これらの新しい制約では、ジェネリック型で宣言された値型変数に対して、L-値キャストが可能になっています。ジェネリック クラスのメソッドでは、ジェネリック型自身を返すジェネリック メソッドの結果を、使用されている具体的な型に応じて、キャストできるようになりました。
例:
class function TMyData<T>.OperateSubtract(const L, R: T): T;
begin
if (GetTypeKind(T) = tkInteger) and (SizeOf(T) = 1) then
Byte(Result) := Byte(L) - Byte(R) // New cast!
else if (GetTypeKind(T) = tkInteger) and (SizeOf(T) = 2) then
Word(Result) := Word(L) - Word(R) // New cast!
// ...
else if (GetTypeKind(T) = tkFloat) and (SizeOf(T) = 10) then
Extended(Result) := Extended(L) - Extended(R); // New cast!
end;
NameOf Instrict 関数
新しい NameOf(Identifier) 標準プロシージャが追加されました。これは、同様の名前の C# 関数と同じ動作をします。これに任意の識別子を渡すと、一致した文字列表現が返されます。
Memo1.Lines.Add (NameOf (Sender)); Memo1.Lines.Add (NameOf (self)); Memo1.Lines.Add (NameOf (TForm31)); Memo1.Lines.Add (NameOf (X)); Memo1.Lines.Add (NameOf (Integer));
レコード クラス演算子 Initialize と Finalize における暗黙的な "self" パラメータ宣言
カスタム管理レコード用の 2 つのクラス演算子により、self
パラメータを省略し(暗黙的には利用可能なまま)、より簡潔な宣言構文が可能になりました。動作や生成されるコードに変更はなく、構文が簡素化されるだけとなります。
例を、「カスタム管理レコード」ページで参照してください。
その他の Delphi コンパイラの改善
次にセクションでは、その他の Delphi コンパイラの改善や品質強化についてリストしていきます。
- $WEAKPACKAGEUNIT 指令は、ユニットが、interface セクション、initialization や finalization ブロック、いずれかのクラス コンストラクタやデストラクタで、グローバル変数を含んでいる場合に、エラー () をレポートするようになりました。
この変更により、既存のコードがコンパイルされなくなる可能性があります。
- コンパイラ エラー ‘E2033’(実変数パラメータと仮変数パラメータの型は同一でなければなりません)に、関係する型の名前が含まれるようになりました。
- 新たに 2 つの警告、W1076 と W1077 が、データ キャストに追加されました。
C++Win64 Modern のプラットフォームが Clang 20 に更新
RAD Studio Florence 13.0 リリースでは、Modern Win64 C++ コンパイラが、Clang 15(12.x に同梱されているバージョン)から Clang 20 に更新されました。新しい Clang ベース コンパイラは、C++23 をサポートしています。 また、このリリースでは、Modern Win64 C++ ツールチェーンのその他すべての要素も更新しています。
このリリースでは、最新の C++ 標準、互換性、安定性に重点を置いた、大幅な機能強化が行われています。以下は、このリリースに含まれる主な改善点です:
- LLVM ツールチェーン アップグレード(v20): ツールチェーンが LLVM v15 から LLVM v20 にアップグレードされました。この更新では、最新の C++ 標準とコンパイラの最適化がサポートされています。
- ASAN サポートの改善: AddressSanitizer(ASAN)ランタイムが、Windows 11 互換のため修正されました。
- 新規作成 C++ 標準オプション: BCC64X は C++23 がデフォルトとなりましたが、ユーザーは必要に応じてターゲットを C++20 や C++17 にすることもできます。
- RTL/STL 共有ライブラリのバージョン管理: 共有ランタイム ライブラリ(たとえば、
libc++.dll
など)に、BDS バージョン番号が接尾辞としてつくようになりました(例、libc++-370.dll
)。 これにより、RAD Studio が複数バージョン、インストールされている場合に、ランタイム競合を回避することができます。 - 解決された既存の問題: LLVM v15 と以前のツールチェーン バージョンにあった多数の不具合と不整合が、このリリースで対応されました。
Delphi RTL の改善
このリリースでは、JSON RTL が改善され、新しい属性を追加することで、特定の値を持つフィールドを抑制できるようになりました。その他の JSON 関連の改善点と、その他の Delphi RTL の更新については、以下を参照してください。
SmartCore AI コンポーネント パック
RAD Studio 13.0 では、ユーザーが自分のアプリに AI 機能を追加したり、Delphi や C++Builder で全く新しい AI にフォーカスしたアプリを構築したりするのを、支援できるように設計された新しい AI コンポーネントのセットを提供しています。これは、将来に向けてのビルディング ブロックであり、基盤となるものです。ユーザーやサードパーティ ベンダが、その上に構築し、そして、他の AI エンジンや UI コントロールと統合して拡張していくことができる、コア・アーキテクチャです。
SmartCore AI コンポーネント パックは、GetIt から利用可能です。FireDAC のデータベース接続と同様の役割を果たす、新しい AI 接続コンポーネントをご利用ください。この AI エンジンに依存しない単一コンポーネントは、特定のドライバを使用して、さまざまな AI エンジン(OpenAI、Claude、Gemini、Ollama など)と REST 経由で通信します。SmartCore AI エンジンは、AI プロバイダ用ドライバをさらに追加する機能を提供しており、これにより、ユーザーは自分のプロジェクトの性能を市場の展開に合わせて拡張していくことができます。設定は、使用しやすい AI 接続ウィザードで管理されています。
コンポーネント パックのパーツは、さまざまなデータ型(テキスト、画像、構造化データなど)のための AI リクエスト コンポーネントのセットであり、これらは、プロンプトと関連づけたり、UI コントロールと直接結び付け、結果を表示させることができます。 このコンポーネント ベースのモデルにより、SmartCore AI コンポーネントを RAD Studio 13.0 で使用することが、非常に簡単になっています。
JSON 処理
このセクションでは、JSON 関連の更新内容を一覧します:
- TJsonOption で
joIgnoreDefault
とjoIgnoreSpecial
属性を追加。 - TMarshalUnmarshalBase.ValueSerialization: jvExcludeSpecial がデフォルトである TJsonValueSerialization。
- TJSONValue.GetValue<T>(const APath: string; ADefaultValue: T) :T の動作が変更されました: JSON 値を可能な場合には検索します。 見つかった場合、JSON 値は指定された型に変換されます。 見つからなかった場合、または復元されなかった場合、または JSON 値が null の場合には、デフォルト値を返します。
- TJSONNumber クラスは、TJSONValue クラスから直接継承されるようになりました。
- TJSONString クラスは「sealed」としてマークされます。
- TJsonReader に ReadAsUInt64 が追加されました。
JSON シリアライザでは、デフォルト値を持つプロパティをスキップするオプションがあります:
- 新しい TJsonConverter.CanWrite(AValue) オーバーロード メソッド。
- TJsonSerializer.MemberSerialization があります: TJsonMemberSerialization.Fields がデフォルトの TJsonMemberSerialization プロパティ
その他の Delphi RTL の変更
次のセクションでは、RAD Studio Florence 13.0 リリースのその他の Delphi RTL 更新について説明します。
- WinRT API、WinMD 定義からの(GetIt 内の)WinAPI ヘッダーの外部スナップショットを更新し、RTL ファイル内の WinAPI 宣言をクリーンアップしました。
- DUnitX の統合バージョンが 0.4.1 に更新されました(最終更新日 2025月6月26日)。
- TStringHelper.Contains 関数の大文字小文字を区別しないバージョンが追加されました。
- "_" と "%binary nums" をサポートする関数の System.StrUtils.LiteralToInt ユニットが追加されました。これにより、クラス TIntegerProperty と TInt64Property が TryLiteralToInt を使用するようになりました。
- 新たに TPath.Exists が追加されました。
- ReadUInt64 と WriteUInt64 が TRegistry クラスに追加されました。
- TThreadedQueue が名前の一貫性を維持するために Count プロパティを持つようになりました。
- TDictionary<K,V> と TOrderedDictionary<K,V> が更新されました。TOrderedDictionary を TDictionary にキャストしても、TOrderedDictionary の動作が保持されます。
- 同期クラス TMutex、TSemaphore、TEvent のコンストラクタが、呼び出し元に戻る前に、THandleObject.LastError プロパティを設定するようになりました。
- 次のシグニチャを持つ TStringList コンストラクタができました:
constructor Create(Options: TStringsOptions; Duplicates: TDuplicates = dupIgnore); overload;
- System.RTTI ユニットは、新たに GetStorageSize 関数を持つようになり、これにより、メモリ内にその型のある値を保有するのに必要なバイト数を読み取ることができます。
- 新たに TSizeF.Zero メソッドが追加されました。
- デッドロック シナリオをデバッグするために、WriterID プロパティが IReadWrite / TMultiReadExclusiveWriteSync に追加されました。
- TRttiDataMember が、新しい中間クラスを導入することにより、再構築されました。
- TRttiPlaceMember
- TRttiDataMember
- TRttiIndexedProperty
VCL の機能強化
RAD Studio 13.0 では、強力な統合 UI ライブラリに新機能と大幅な品質向上が導入されました。VCL には、UIAutomation Microsoft インターフェイス、TitleBar のスタイルなどがインテグレーションが含まれています。
UIAutomation のサポート
UI テスト ツールでの VCL アプリケーションのアクセサビリティとインテグレーションを向上させるため、バージョン 13.0 では、UIAutomation のサポートが VCL ライブラリに追加されています。
TitleBar の改善
このリリースでは、TitleBarPanel がカスタム VCL スタイルをサポートしています。これにより、タイトルバーの領域におけるスタイル付きコントロールの描画が可能になっています。
さらに、このリリースでは、次の更新が行われています:
- 新たに TTitleBar.StyleColors プロパティが追加され、タイトル バーの背景やボタンに対して VCL スタイル カラーの自動利用が有効にできるようになりました。このサポートには、次のコントロールの利用が含まれています: TButton、TSpeedButton、TCheckBox、TRadioButton、TToolBar、TEdit、TComboBox、TFormTabsBar、TActionToolBar、TActionMainMenuBar
- MDI アプリケーションでの TitleBar の使用の改善
- TitleBar 上のユーザーのためのヒントのボタンのサポートが追加されました。
- HighDPI サポートの改善
ControlList の改善
RAD Studio Florence 13.0 では、次の改善が ControlList コンポーネントに施されています:
- ControlList コンポーネントは、新しいタイプのホスト コントロールである、SplitButton をサポートしています。この実装には次が含まれています:
- TControlListButton コントロールのスタイル clbkSplitPushButton と clbkSplitToolButton
- 矢印付きのボタン分割ドロップダウン領域の新しい外観
- TControlListButton コントロールの DropDownMenu プロパティ
- 新たに OnGetItemHint イベントと ShowItemHint プロパティが追加され、コントロールの全体的なヒントではなく、アイテムごとにヒントを提供できるようになりました。
FormsTabsBar コンポーネントへの機能強化
RAD Studio Florence 13.0 では、RAD Studio 12 で導入された次の改善が FormsTabBar コンポーネントに施されています:
- 次の 2 つの新しいプロパティに対して透過性のサポートが追加されました:Transparent と ShowBottomLine
- 新たに OnGetTabCaption イベントが追加され、TFormTabsBar がより柔軟になりました。
- メソッド TabFromPoint と TabIndexFromPoint は、public になりました。
- 新たに MouseMiddleButtonClose プロパティが追加され、マウスの中ボタンでタブを閉じられるようになりました。
EdgeBrowser の更新
このリリースでは、Microsoft WebView 2 コントロール(aka Chromium ベースの Edge)のインターフェイスが、WebView2 SDK のバージョン 1.0.3296.44 に更新されました。
また、TEdgeBrowser コンポーネント (and the matching demo) が更新され、AddWebResourceRequestedFilter の代わりに AddWebResourceRequestedFilterWithRequestSourceKinds がサポートされるようになりました。
WinUI 3 デモ
このリリースでは、以前は GetIt から単独でスンロード可能だった WinUI 3 ヘッダーとスタンドアロン WinUI 3 デモが刷新され、コア製品のデモに統合されました。
ActionMainMenuBar のスクロール
このリリースでは、TActionMainMenuBar コントロールに対して新たにスクロール機能が追加されており、垂直の高さが画面の高さを超えた場合に有効になります。
この機能の動作例を、以下でご覧ください。これはまた、低解像度の画面で実行される際に、RAD Studio IDE でも使用される可能性がある点に留意してください。
その他のVCL の改善
次は VCL のその他の更新と変更についてです。
- 残されていた Win98 固有のサポートが、VCL コードから削除されました。
- TToggleSwitch コントロールが改善され、VCL スタイルの "Windows 10" ファミリが更新されることで、Windows 10 / Windows 11 トグル スイッチの外観になりました。
- TDragDockObject クラスが更新され、DropAlign プロパティの読み/書きが可能になりました。
- 新たに TActionMainMenuBar.OnSelectMenuItem イベントが追加され、ActionMainMenuBar のメニュー項目に対してヒント表示ができるようになりました。
- TCategoryButtons コントロールに、TButtonItem と TButtonCategory の Visible プロパティと Enabled プロパティが追加されました。
- 新しい TStyleManager.FormBorderSize プロパティ
- 新しい TMonthCalendar.OnChange イベント
- 新しい OnBeforeResize and OnAfterResize イベントが TSplitter に追加されました。
- 新しい public 関数 VCLEditors.GetFormDPIForVCLEditors が追加され、HiDPI IDE で VCL エディタの開発を支援するできるようになりました。
- TCanvas が次のメソッドに対して、TPoint パラメータを持つオーバーロード メソッドを新たに提供するようになりました:AngleArc、Draw、LineTo、MoveTo、FloodFill、and TextOut
FireMonkey の更新
RAD Studio 13.0 での FireMonkey は、新しいディスプレイ リンク サービスを統合しており、アニメーションの安定性と滑らかさを大幅に向上させています。また、このフレームワークでは、GPI を利用したビットマップのコピー時のパフォーマンスの向上、刷新された MaskEdit コンポーネントなどを提供しています。
このセクションでは、FireMonkey 領域に対して行われた更新と機能拡張のリストを示します。
Apple プラットフォームの API
RAD Studio Florence 13.0 リリースでは、Delphi ヘッダー ファイルで利用可能な、iOS および macOS プラットフォームの API の大幅な更新と機能拡張が提供されています。このリリースではまた、すべての iOS API ヘッダーを、RTL から iOS 18.4 に更新されており、具体的には次のような機能拡張が含まれています:
- 不足していた NSWindow 関数が追加されました。
- ユニバーサル リンクのサポートが拡張されました(iOSapi.Foundation において)。
- さらに CoreText 定数関数が追加されました(iOSapi.CoreText.pas 内)。
coalescedTouchesForTouch
(touch: UITouch): NSArray; cdecl; が UIEvent インターフェイスに追加されました(iOSapi.UIKit 内)。- 不足していたメソッド宣言がインターフェイス
UITextView
とUITextField
に追加されました(iOSapi.UIKit.pas 内)。 &string
メソッドがNSAttributedString
インターフェイスに追加されました(iOSapi.Foundation.pas 内)。- 宣言
CVMetalTexture
とCVMetalTextureCache
が追加されました(iOSapi.CoreVideo.pas 内)。 - 不足していた関数が追加されました(Macapi.QuartzCore.pas 内)。
- インターフェイスとメソッドが追加されました(Macapi.AppKit.pas 内)。
CTFontManagerRegisterGraphicsFont
の宣言が追加されました(Macapi.CoreText.pas 内)。- iosapi.CoreLocation が iOS 18.4 に更新され、
CLVisit
に対するサポートも含まれています。 - 新しいファイル iOSapi.CoreMIDI、iOSapi.CoreAudioTypes が追加されました。
- iOSapi.AudioToolbox ユニットが iOS 18.4 に更新されました。
AudioUnit
フレームワークが非推奨により削除されたため、代わりに AudioToolbox を使用する必要があります。 - iOSapi.AVFoundation にインポートされた
AVAudioSession
オブジェクトが拡張されました。 - 新しいヘッダー iOSapi.ImageIO。
Android プラットフォーム API
RAD Studio Florence 13.0 は、デフォルトでは Android API レベル 35 をターゲットにしており、将来的により新しい API をサポートするためのツールを含んでいます。
以下は、さらなる変更点の一部です:
- TTexture クラスが拡張され、
GL_TEXTURE_EXTERNAL_OES
ターゲットをサポートするようになりました。 Java2OP
コマンドライン ツールが改良され、Doclava
が新しいjparser
コマンドライン ツールに置き換えられました。これにより、プラットフォーム モジュールによってエクスポートされたパッケージで宣言された API の、再実装に関連する問題が解消されました。- getEventTimeNanos と getHistoricalEventTimeNanos が、Androidapi.JNI.GraphicsContentViewText.pas 内の JMotionEvent に追加されました。
manifestmerger
コマンドライン ツールがバージョン 31.10.1 に更新されました。AAPT2
コマンドライン ツールがバージョン 8.10.1 に更新されました。dexter
コマンドライン ユーティリティがバージョン 1.0.1 に更新されました。rclasser
コマンドライン ユーティリティがバージョン 1.0.1 に更新されました。bundletool
コマンドライン ユーティリティがバージョン 1.18.1 に更新されました。packager
コマンドライン ユーティリティがバージョン 1.2.1 に更新されました。
MaskEdit コントロール
RAD Studio Florence 13.0 では、新たに MaskEdit コントロールが FireMonkey に対して導入されています。これには、入力マスク専用のデザイナが含まれています。
VCL でのものとは異なり、FMX TMaskEdit 実装では、MaskEdit での現在の値が正しくなくても、例外は発生しません。代わりに、OnValidateError イベントを使用することが推奨されています。このイベントにより開発者は、不正な値について、視覚的なフィードバックをユーザーに提供することができます。フォーカスをリセットした後も値がまだ正しくない場合は、無効な状態のままとなり、値が有効になるまで OnChange イベントはトリガされません。
新しいディスプレイ リンク サービス
FMX の新しいディスプレイ リンク サービスは、すべてのアプリケーション アニメーションの中心的なエンジンとなり、これまで使用されていた従来のタイマーベースのエンジンと、完全に置き換えられています。
このフレーム精度のシステムは、ディスプレイの実際のリフレッシュレートを利用しており、すべての UI 更新とアニメーションを同期、実行させます。JChoreographer(Android)やCADisplayLink(iOS)などのプラットフォームネイティブ API を利用することで、アニメーション処理が VSync イベントと厳密に同期され、あらゆるプラットフォームでよりスムーズで一貫性のあるビジュアルを実現します。
この根本的かつ構造的な変更により、既存のコードにいくつかの変更と非互換性が生じることに注意してください。 例えば、TAniCalculations の
Interval
プロパティは削除され[1]、他のいくつかのプロパティは TDateTime から Double に変更されています。FMX Linux
RAD Studio Florence 13.0 リリースでは、FMX Linux の新しいバージョンが GetIt で利用可能になりました。また、ライブラリの IDE 統合がよりスムーズになりました。
Skia の更新
RAD Studio Florence 13.0 リリースには、Skia ライブラリ インテグレーション(Skia4Delphi - RAD Studio)の最新バージョン 7.0.0 へのアップデートが含まれています。この更新では、いくつかの問題が修正され、Skia インテグレーションの機能強化が行われています。
リリース - skia4delphi/skia4delphi を参照してください。
その他の FireMonkey コントロールとコンポーネントの改善
次は FireMonkey コントロールとコンポーネントのその他の更新と変更についてです。
- TComboEdit コンポーネントは、編集可能なテキスト構成による入力の自動補完をサポートするようになりました。
- ユーザーがスクロール アニメーション、バウンス、タッチ インタラクションを制御できるよう、TPresentedScrollBox に新しいプロパティのセットが追加されました。 新しいプロパティは次のとおりです: AutoHide、Bounces、ScrollAnimation、ScrollDirections、TouchTracking。
- 新しいコンポーネント TApplicationEvents が追加されました。
- API が秒単位の間隔を扱うようになったため、TDateTime を Double に変更されました。 iOS の DisplayLink は秒単位、Android の JChoreographer はナノ秒単位で動作します。
- FMX.Text.TextEditor および FMX.Text.SpellingManager のメソッドが、仮想メソッドに変換されました。
- 新しいインターフェイス
IFMXSpellCheckerServiceEx
を作成することでIFMXSpellCheckerService
が再設計され、さまざまな言語や文書が操作できるようになりました。 - TGlyph コンポーネントの HitTest プロパティが公開されました。
- TMemo に TextPrompt プロパティが追加されました。これは、コントロールのテキストが空の場合にプレースホルダ テキストとして使用されます。 TEdit の対応するプロパティと同様に動作します。
- 新しい OnCheckedChange イベントが TListBoxItem に追加されました。
- 「グリップ」の方向が TSplitter スタイルに追加されました。
- TShape およびその他のビジュアル コントロール用の TouchTargetExpansion プロパティが公開されました。
- TBindNavigator ボタン アイコンがスタイル経由で変更できるようになりました。
- TTrackBar に新しい Reverse プロパティが追加されました。これにより、トラックバーの表示を反転できます。また、TTrackBar はマウス ホイールによるスクロールもサポートするようになりました。
- 以前はメニュー項目の高さは定数でした。今後は、StyleName=“height“ を指定した TStyleTag オブジェクトを TMenuItem スタイルに追加し、Value プロパティでメニュー項目の高さを指定できるようになりました。
- TGlyph には新しいプロパティ ImageRect と Bitmap ができ、実際の描画サイズと座標が制御できるようになりました。
- TExpander の FContentHeight 値が ContentHeight プロパティでアクセスできるようになりました。
- TStringGrid の TPopupColumn 入力が改善されました。
- TRadioButton、TCheckBox、TArcDial に DoStateChanged 仮想メソッドが導入されました。
- TCustomCanvasGpu には、TCanvasHelper 型の新しいクラス プロパティ Helper があり、FMX ライブラリの拡張に関心のある開発者向けを意図しています。
- FMX.TListBoxGroupHeader に TextSetting.Trimming が追加されました。
- TMainMenu と TPopupMenu に AutoTranslate プロパティが追加されました。
- EvaluateJavaScript のオーバーロードが TWebBrowser に追加されました。これには、TJavaScriptResultCallback パラメータがあります。
- VCL の対応するコンポーネントに似た新しいコンポーネント、TApplicationEvents が追加されました。
- TAlignLayout が更新され、コントロールの中央揃えのための新しい配置オプションが追加されました。 新しい位置揃えメソッドには次のものがあります:
TopCenter
、TopLeft
、TopRight
、LeftCenter
、LeftTop
、LeftBottom
、RightCenter
、RightTop
、RightBottom
、BottomCenter
、BottomLeft
、BottomRight
。 - 絵文字記号バージョン 16.0 のサポートが追加されました。
- TBindNavigator では、ButtonsOptions プロパティのサブプロパティを使用して、各ボタンに特定のヒントとスタイルを設定するオプションが提供されるようになりました。
その他のモバイルの改善
- iOS の全画面のサポート
- RAD Studio は、他のフレームワークやアプリとのやり取りに使用できる iOS 起動パラメータを渡すようになりました(TApplicationEvent.
FinishedLaunching
を参照)。 - iOS でのディクテーションの問題が解決されました。
- iOS のリスト ビューで、新しいプロパティ TListView.Bounces を使用して、バウンスを無効にする機能が追加されました。 このプロパティにより、開発者はコンテンツを境界線を超えてスクロールする機能を制御できます。 これはタッチ スクリーンにのみ効果があります。
データベースと FireDAC
符号なし Big Integer データベース フィールドのサポートの拡張から、フィールド エディタからビジュアル フォームにフィールドをドラッグする際のより柔軟なオプションまで、この領域には多数の改善が加えられています。
このセクションでは、データベース コンポーネントと FireDAC コンポーネントに対して行われた更新と機能強化の一覧を示します。
データベース RTL
このセクションでは、DataBase RTL に加えられた更新と機能強化の一覧を示します:
- TFieldType に新しいフィールド型が追加され、符号なし Big Integer がサポートされました。
TFieldType.ftLargeUint
型が追加されました。FireDAC は、Oracle および MySQL ドライバ、そして TFDMemTable を通じてこれをサポートしています。 - VCL TDBText コンポーネントに新しい EllipsisPosition プロパティが追加されました。これは TLabel と同じように動作します。
- アタッチされた DataSource オブジェクトにアクセスするための新しい DataSet プロパティが追加されました:
- TDataSet.DataSourceCount プロパティ
- TDataSet.DataSources プロパティ
- オーバーロード
DrpCtrls.RegisterFieldControl
プロシージャが追加され、これにより、作成されるカスタム データウェア コントロールのカスタム セットアップが可能になりました。以下の例を参照してください:
uses DrpCtrls;
RegisterFieldControl(TIntegerField, 'TDBLabeledEdit',
procedure (Control: TControl; DataSource: TDataSource; Field: TField)
var
LEdit: TDBLabeledEdit;
begin
LEdit := Control as TDBLabeledEdit;
LEdit.DataSource := DataSource;
LEdit.DataField := Field.FullName;
LEdit.EditLabel.Caption := Field.DisplayLabel;
end);
FireDAC
このリリースでは、FireDAC に次の更新と機能強化が追加されました:
- Firebird 5.0 以降で
TFDFBBackup
における並列操作のサポートが追加されました。ParallelWorkers(TFDIBBackup、TFDIBRestore、TFDIBValidate)は、要求されたジョブを実行するためにサービス マネージャが使用する並列ワーカーの数を指定します。 - TFDMemTable は、
RecsSkip
とRecsMax
をサポートしています。RecsSkip と RecsMax の設定は、Filter プロパティがTrue
に設定されているときに適用されます。 - FireDAC に、PostgreSQL 配列型のテキストデータを返す際の柔軟性が追加されました。以下は、
relacl
フィールドを読み取り可能なテキストとして表示するための 2 つの方法です:- フィールドをキャストする -
relacl::TEXT
- ResourceOptions.DirectExecute を
True
に設定。これにより、FireDAC は内部的に PostgreSQL のテキスト形式を結果セットに使用します。
- フィールドをキャストする -
- TFDCustomConnection クラスと TFDCustomTransaction クラスの一部のトランザクション関連メソッドを仮想メソッドに変換し、派生クラスの動作をカスタマイズしやすくしました。
- TFDMemTable では、新しい TFDStorageFormat.sfFreeFormJSON を使用して、標準の JSON(FireDAC からデータを保存することによって生成されたものではない)を読み込むことができます。
例:
FDMemTable1.LoadFromFile('test.json', sfFreeFormJSON); FDMemTable1.SaveToFile('test2.json', sfFreeFormJSON).
- Oracle 接続のために、RAD Studio Florence 13.0 では、Delphi の FireDAC TFDConnection コンポーネント内での OAuth 2.0 認証のサポートが追加されました。
- 新しい接続定義パラメータ:
- OAuth_Token - OAuth2 または IAM トークンを指定します。Oracle 19.13 必須。
- OAuth_PrivKey - IAM PoP 秘密キーを指定します。指定されると IAM トークンベースの認証が使用され、そうでなければ Azure OAuth2 認証が使用されます。Oracle 19.13 必須。
- OAuth2 トークンを取得するには、TOAuth2Authenticator コンポーネントを使用します。 FireDAC Automatic Connection Recovery を使用してトークンを更新し、新しいトークンを送信します。
- 新しい接続定義パラメータ:
DataSnap
このリリースでは、TFDConnection および TDSClientCallbackChannelManager に証明書検証イベントが追加され、トランスポートとして HTTPS が使用できるようになりました:
Web クライアント ライブラリの更新
RAD Studio Florence 13.0 リリースでは、次の更新が提供されています:
- HTTP/3 プロトコル サポートが THTTPProtocolVersion.HTTP_3_0 により HttpClient に追加されました。
- SOAP クライアントに対しては、THTTPReqResp.Execute の非同期バージョンがあります。
WebBroker の更新
RAD Studio 13.0 Florence リリースでは、最新の統合 HTTP セッション管理、改善された Apache インテグレーション、Nginx Web サーバーのサポート、強化されたログ機能、簡単な WebStencils インテグレーションなど、WebBroker の拡張機能が提供されており、Web アプリケーションの開発がより簡単かつ強力になっています。
セッション管理と認証
このリリースでは、新しいクラス TWebSessionManager が導入されており、TWebSession オブジェクトのリストを管理することができます。設計時にプロパティのセットを提供する、非ビジュアル コンポーネントです。
TWebRequest.Session プロパティは、リクエストのセッションを返します。TWebSession.DataVars のストア カスタム オブジェクトは、WebStencils スクリプトで直接利用できるようになりました。
セッション認証は、セッション管理と統合することができ、別のロジックをベースにすることができます。
TCustomWebDispatcher.DispatchAction には「sentinel」アルゴリズムが組み込まれており、処理が IWebSessionManager または IWebAuthenticator に委譲されています。
ライブラリ サポートのその他の変更点は次のとおりです:
- セッション管理:
- TWebSession オブジェクトのコレクションを管理する TWebSessionManager が追加されました。これは非ビジュアルコンポーネントで、設計時のプロパティとして次の設定があります: IdLocation、IdName、Scope(ssUnlimited、ssUser、ssUserAndIP)、Timeout、SharedSecret。
- ここのセッションを表す TWebSession が追加されました。
- 認証:
- HTTP ベーシック認証を実装する TWebBasicAutenticator が追加されました。
- HTML フォームベース認証を実装する TWebFormsAuthenticator が追加されました。
- 権限付与:
- TWebAuthorizer は、認証ゾーンを通じて、ロールベースのアクセス制御を提供します。
- 権限付与は、ゾーンの要件に対して、ユーザー ロールをチェックします。カスタム権限付与ロジックには、OnAuthorize イベントを使用します。認可を失敗した場合には、UnauthorizedURL にリダイレクトするか、403 ステータスを返します。
- WebStencils インテグレーション:
- セッションは、次の WebStencils テンプレートと統合されています:
@session.xxx
: セッション オブジェクト プロパティにアクセスします。@session.DataVars
: セッション カスタム変数にアクセスします。@session.UserHasRole(<string>)
: ユーザーが特定のロールを持っているかチェックします。
- セッションは、次の WebStencils テンプレートと統合されています:
@<n>
: キー<n>
で DataVars に格納されているオブジェクトに直接アクセスします。
- 新しいリクエスト プロパティ:
- TWebRequest.AuthUserName: 認可されたユーザー名
- TWebRequest.AuthMethod: 使用された認証メソッド
- TWebRequest.Session: 現在のリクエスト セッション オブジェクト。
これらのコンポーネントを使用するには、Web モジュールに追加をし(モジュールごとに TWebSessionManager と認証コンポーネントを 1 つずつ)、コンポーネントがディスパッチャ センチネルによって自動的に検出されるようにします。 処理フローは、[Session管理|認証|権限付与|アクション ディスパッチ]を使用します。
TWebSessionManager が存在する場合、セッションは自動的に作成されます。認証コンポーネントを追加する場合は認証が必須です(認証を制御するには TWebAuthorizer を使用します)。すべてのコンポーネントは、インターフェース(IWebSessionManager、IWebAuthenticator、IWebAuthorizer)を介して一緒に動作します。
ログ出力
新しい TWebApplication.Log メソッドが追加され、これにはすべてのプラットフォームでサポートされている、重要度、メッセージ、パラメータがあり、適切なホスティング Web サーバー ログ システムを使用します:
- Apache: Apache サーバーのログ ファイル。デフォルトは logs\error.log
- ISAPI: Windows イベント ログ(eventvwr.msc): Windows ログ
- CGI: TCGIApplication.LogFileName という名前のファイル
- FastCGI: HTTP(Apache、nginx)サーバー ログ ファイル。デフォルトは logs\error.log
TWebRequest の拡張
このリリースでは、TWebRequest が拡張され、次が提供されるようになっています:
- ExtractAllHeaders メソッド、AllHeaders プロパティ
- セッションID
- AuthUserName と AuthMethod
Apache Config
このリリースではテキストベースで拡張可能な設定システムである Apache Config が導入されています。以下が設定の例です。
例:
MyEnabled On
MyFolder "c:/temp"
MyMimeTypes image/bmp text/html
<Location /qwe/asd>
MyEnabled On
MyFolder "c:/temp/asd"
</Location>
<Location /qwe/asd/zxc>
MyMimeTypes image/png image/jpeg text/html
MyRole admin
</Location>
Delphi レコードから Apache の指令にはマッピングを使用します(string[n] を含む非管理フィールド タイプのみ):
- マッピングをカスタマイズするには、WebHTTPMethod 属性を使用します。
- Web.ApacheApp.InitConfig を使用して、レコード タイプを登録します。InitApplication の直後に呼び出します。
- Web.ApacheHTTP.TApacheRequest.GetConfig を使用して、リクエスト URL に固有の値を持つレコード インスタンスを取得します。
- Web.HTTPDMethods.IHTTPDConfigAdaptor、THTTPDCustomConfigAdaptor<T> を使用して、レコードの初期化とオーバーライドをカスタマイズします。
WebBroker ウィザードには、Apache の設定のサンプルを含めるオプションがあります。
この機能は、C++ Builder ではサポートされていません。
FastGCI と NGINX のサポート
このリリースでは、FastCGI サポートが nginx に追加されています。このインターフェースは、別のアプリケーションとして実行される Web モジュールへのアクセスを提供します。
以下はその一覧です:
- 新たに Web.FastCGIApp.pas、Web.FastCGIHTTP.pas、Web.FCGI_Protocol.pas units が追加されました。
- FastCGI は nginx と Apache でサポートされています。
- 次の新しいクラスが追加されました: TFastCGIApplication、TFastCGIRequest、TFastCGIResponse
- FastCGI のサポートが WebBroker ウィザードに追加されました。
アプリケーションを nginx で登録するには、次の行を conf\nginx.conf に追加します:
# 1) "location" mask, fastcgi_param directives are environment dependent
# 2) Update the fastcgi_pass directive when the host or port is different
# 3) This will redirect the request "GET http://localhost:8000/fcgi/"
# to the FastCGI server.
location ~ ^/fcgi(.*)$ {
include fastcgi_params;
fastcgi_param SCRIPT_NAME /fcgi;
fastcgi_param PATH_INFO $1;
fastcgi_param SCRIPT_FILENAME dummy;
fastcgi_param PATH_TRANSLATED $document_root$1;
fastcgi_keep_conn on;
fastcgi_pass 127.0.0.1:9000;
}
WebStencils の機能強化
WebStencils は、サーバー側スクリプトを提供し、RAD Server を Web サービス エンジンから Web サイトおよび Web サービス ツールに変換することで、RAD Studio の既存の Web テクノロジを大幅に拡張しています。
次のセクションでは、RAD Studio Florence 13.0 で導入された WebStencils の更新ついて説明します。
- データベース接続文字列などの機密情報やその他の機密情報の漏洩を防ぐため、ホワイトリスト メカニズム プロパティが実装されました。 ホワイトリストのカスタマイズ方法については、こちらを参照してください。
- オブジェクトおよびデータセット モデルの外部にあるスクリプト エンジンに追加の変数を追加する機能が導入されました。
- WebStencils のデータセットに対する
@
表記法では、フィールドに加えてデータセットのプロパティにもアクセスできるようになりました。 show フィールドへのアクセスのレベルは、特定のプロパティ(TWebStencilsProcessor.Whitelist)を使用して制御でき、内部情報への不正アクセスを防止できます。詳細については、こちらを参照してください。 - WebStencils は、利用可能な場合は Web セッションと自動的に統合されるようになりました。詳細については、こちらを参照してください。
- WebStencils は、ネストされたレイアウト階層を通じて @ExtraHeader コンテンツの伝播をサポートするようになりました。詳細については、こちらを参照してください。
- キーワード
@page
に 2 つの追加値(@page.request_path
や@page.request_segment
など)を与えることにより、WebStencils キーワードが機能強化されました。
RAD サーバーの改善
RAD Studio 13.0 では、Swagger ベースの API ドキュメントの使用がより柔軟になり、RAD Server マルチテナント サポートにテナント固有の構成を統合するオプションが追加され、API バージョン管理を実装するためのシンプルで直接的な方法が導入されています。
次のセクションでは、RAD Studio Florence 13.0 リリースにおける RAD Server の改善点について説明します。
- RAD Server Swagger API ドキュメント。Swagger および OpenAPI 定義のスキーマと参照パラメータがオプションになりました。
- EndPointResponseHeaderAttribute 属性を使用して、Swagger レスポンスにおけるカスタム ヘッダーを返すオプションが追加されました。
- 新しいメソッド SetBaseUrl と GetBaseUrl
- このリリースでは、RAD Server のマルチテナントのサポートに、テナント固有の設定(データベース接続のように)を統合する方法が追加されており、ビジネス ロジックが実行される前に設定することができます。具体的には、次が追加されています:
- テナント接頭辞付きサーバー変数: テナント接頭辞付き変数を指定すると、その値が確実に使用されます。そうでなければ、テナント接頭辞なしの変数が使用されます。
- メソッド BeforeRequest と AfterRequest を持つ IEMSResourceInterceptor インターフェイス
- RAD S1erver は、同じ API 関数の複数のバージョンのエクスポートをサポートするようになりました。これにより、クライアントは新しい ResourceVersion 属性を使用して、REST API を最新バージョンまたは古いバージョンで呼び出すことができます。 新しい TEMSVersionStatus 値は次のとおりです:
- 実験的 -
ver/myapi/…
をベース URL として使用し、“Experimental” を Swagger 説明に追加 - アクティブ -
ver/myapi/…
をベース URL として使用 - デフォルト -
ver/myapi/…
とmyapi/…
をベース URL として使用 - 廃止予定 -
ver/myapi/…
をベース URL として使用し、“Deprecated” を Swagger 説明に追加
- 実験的 -
関連項目
リファレンス
- ↑ アニメーションのレンダリング間隔を廃止した理由は、ディスプレイのリフレッシュレートと常に一致するようになったためです。 アプリケーションは 60Hz、90Hz、120Hz のディスプレイを搭載したデバイスで動作し、手動で間隔を調整する必要がなく、スクロールが自動的にスムーズになります。 実行中のアニメーションは、画面の新しいフレームごとに常に更新(再計算)されます。