FireMonkey の新機能と強化
FireMonkey への移動
目次
Metal ドライバ GPU のサポート
macOS プラットフォームで、古い Quartz API や OpenGL ではなく、Metal API に対してアプリケーションを構築できるようになりました。
Apple は OpenGL を廃止する予定ですので、Catalina では利用可能でも将来的には利用できなくなることが想定されます。 FireMonkey Metal のサポートにより、今後の要件へのスムーズな移行と、画面描画のパフォーマンスが向上されました。
RAD Studio 10.4 では、必須ではないとはいえ、iOS プラットフォームでも同様に Metal API のサポートが導入されていますが、これにより、FireMonkey アプリケーションのパフォーマンスが全体的に向上しています。
Metal での作業方法
UI レンダリングのために Metal ドライバを利用可能にし、またその設定するための、グローバル設定があります。
これらの設定は以下のとおりで、デフォルト値が示されています:
FMX.Types.GlobalUseMetal: Boolean=False;
これにより Metal を UI レンダリングに使用することができます。 Metal コンテキストをグラフィックのレンダリングに使うかどうかを示すブーリアン値です。
Metal コンテキストを有効にするには、initialization セクションでグローバル変数 FMX.Types.GlobalUseMetal を True に設定する必要があります。 デフォルトでは、このグローバル変数は False で、以前の Delphi バージョンと互換性を保ちます。
FMX.Types.GlobalEventDrivenDisplayUpdates: Boolean=True; この値が True に設定されている場合、描画ループが一時停止し、更新はイベント駆動型になります。 デフォルト値は True です。
これはゲームなどには便利ですが、現在 Android の OpenGL には同等のものがありません。
FMX.Types.GlobalPreferredFramesPerSecond: Integer = 60; これは、描画ループがその定数を更新するレートです。 整数の変数で、GlobalEventDrivenDisplayUpdates が Falseに設定されている場合、描画ループがコンテンツを更新するレートを設定します。
新しいウィンドウ スタイルのメモ実装
Windows プラットフォームでのスタイル付き TMemo コンポーネントのための新しい実装では、IME に対するさらなるサポートやその他の改善が行われています。
この新しい実装を有効にするには、uses 文に新しいユニット FMX.Memo.Style.New を追加しなければなりません。 FireMonkey は、すべてのプラットフォームで、デフォルトにはスタイル付き TMemo の古い実装をします。
新しいユニット FMX.Memo.Style.New を追加すると、アプリケーション全体においてすべての TMemo コントロールのスタイル付きメモの古い実装を、自動的に置き換えます。
10.4 のこの新しいスタイルのメモの実装は、Windows プラットフォーム限定です。 利用可能な主な機能をいくつかあげます:
- 新しいスタイルのメモには、完全に再設計された IME 入力が含まれています。 この新しいスタイルのメモは、Windows においてネイティブ IME テキスト入力のように動作します:
-
- ユーザーは、IME テキストを入力し、IME テキストの挿入場所を選択することができます。
-
- ユーザーが IME テキストを入力している間は、IME テキストはメモ行の一部ではありません。 IME テキストは上に描画されています。
-
- これで、ユーザーがメモの内容をスクロールすると、IME ウィンドウの位置が変わります。
-
- IME テキストを入力する際には、ユーザーは左右のボタンを適用し、現在の IME テキストを修正できます。
- 新しいスタイルのメモは、この新しいテキストの選択方法をサポートしています。 例: テキスト内の複数の単語を選択する(単語全体を選択する)には、マウス ボタンをダブルクリックして押したまま移動します。)
- 新しいスタイルのメモの実装は、次のさまざまな部分より構成されています (選択、レイアウト、スペルチェック、コンテキスト メニューなど)。
- TTextService では、IME の状態をより制御するための新しいメソッドが追加されています。
追加された FireMonkey 機能と特記すべき修正
- FireMonkey の Toolbar コンポーネントには、Hint、ShowHint、ParentShowHint の各プロパティがあります。
- 絵文字の ZWJ シーケンスのサポートの改善(例:
家族 - 男性、女性、女の子、男の子)
- TMemo におけるマウスからキャレット位置にアクセスする新しい方法
- extractNativeLibs マニフェスト属性の値を返す新しいメソッド(TAndroidHelper.ShouldNativeLibrariesBeExtracted)があります。これはアプリ バンドルとしてパッケージ化されたアプリケーションに対して False を返します。
- TextLayout での文字のレンダリングのパフォーマンスが大幅に向上しました。
- macOS では、Bluetooth の新しい資格オプションがあります。
新しい TBufferedLayout コンポーネント
FireMonkey に、グラフィック コンテンツ(内部コントロールを含む)をメモリ バッファに格納する新しいレイアウト コントロールができました。これにより、変更がない場合、各内部コントロールを再描画するのではなく、このバッファを表示することで再描画することができます。
多くの場合、その主な効果は、コントロールの UI の更新が速くなることです。 ただし、大きな面積で TBufferedLayout を使用すると、メモリ使用量に悪影響を及ぼす可能性があるため、この動作はコア ライブラリの一部には入れられていません。
新しいコントロールはその他のレイアウトと同様、簡単に使用することができ、次のアイコンを持っています: