FireMonkey のネイティブ Windows コントロール

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

FireMonkey のネイティブ コントロール への移動


このトピックでは、FireMonkey のネイティブ Windows コントロールについて説明します。

FireMonkey のネイティブ Windows コントロールの表示

FireMonkey では、特定のビジュアル コンポーネントのネイティブ表示が可能です。

  • コントロールを標準の FireMonkey 表示にするには、ControlType プロパティを Styled に設定します。StyledControlType のデフォルト値です。
  • ControlType プロパティを Platform に設定すると、そのコントロールをネイティブ スタイルで表示できます。

使用可能な FireMonkey ネイティブ Windows コントロール

ネイティブ表示をサポートしているコントロールは次のとおりです。

ネイティブ Windows コントロールの外見の変化

ビジュアル コンポーネントの ControlType プロパティを Platform に設定した場合、フォーム デザイナでのこのコントロールの表示は、ネイティブ コントロールであることを示すように変わり、スマートフォンのような小さいアイコンが右下隅に表示されます。 ControlType プロパティを StyledPlatform に設定した場合の設計時および実行時のネイティブ Windows コントロールの外見を次の図に示します。

コントロール 設計時 実行時
Styled Platform Styled Platform

TEdit

TEditStyled DT win.png

TEditPlatform DT win.png

TEditStyled RT win.png

TEditPlatform RT win.png

TMemo

TMemo Styled DT win.png

TMemo Platform DT win.png

TMemo Styled RT win.png

TMemo Platform RT win.png

TPresentedScrollBox

TPresentedScrollBox Styled DT.png

TPresentedScrollBox Platform DT.png

TPresentedScrollBox Styled RT win.png

TPresentedScrollBox Platform RT win.png

アプリケーションへのネイティブ Windows コントロールの追加

アプリケーションにネイティブ Windows コントロールを追加するには:

  1. ネイティブ表示をサポートしているコンポーネントをフォームにドロップします(サポートされているコントロールのリストを参照)。
  2. [オブジェクト インスペクタ]の[プロパティ]タブで、ControlType プロパティを Platform に設定します。設計時のコンポーネントの表示が変わります(「ネイティブ Windows コントロールの外見の変化」を参照)。
  3. アプリケーションを実行します。

代わりに、実行時に ControlType の値を変更しても構いません。 TEdit コントロールのネイティブ表現を選択するには、次のコードをアプリケーションに追加します:

Delphi の場合:
Edit1.ControlType := TPresentedControl.TControlType.Platform;
C++ の場合:
Edit1->ControlType = TPresentedControl::TControlType::Platform;

ネイティブ Windows コントロールと非ネイティブ コントロールの組み合わせ

非ネイティブ コントロールとネイティブ コントロールを組み合わせることはお勧めしません。ネイティブ コントロールではフォームの Z 順序をサポートしておらず、ネイティブ コントロールはフォーム上で常に他のコントロールの上に表示されるからです。ただし、一部の非ネイティブ コントロールでは、ネイティブ コントロールの Z 順序をサポートするため、ネイティブ コントロールと組み合わせることができます。

ControlType プロパティを持っているためネイティブ コントロールと組み合わせることができるコントロールは次のとおりです。

ControlType プロパティを持っていないがネイティブ コントロールと組み合わせることもできるコントロールは次のとおりです。

ネイティブ Windows コントロールの利点

コントロールの中には、ネイティブ コントロールとして使用した場合に追加機能をサポートするものがあります。

TMemo と TEdit

  • その他のコンテキスト メニュー項目:
    • 元に戻す: 直前の操作を元に戻します。
    • 右から左に読む: コントロールの右側のテキストの読み取り順および揃え方を変更します。 詳細については、「Microsoft ドキュメント - 右から左に読む設定にするには」を参照してください。
    • Unicode 制御文字の表示: Unicode コントロール文字を表示します。
    • Unicode 制御文字の挿入: Unicode 制御文字を挿入します。
    • IME を開く: IME は Microsoft Global Input Method Editor の略です。 Windows の他のバージョンでサポートしているアプリケーションへの日本語、中国語、韓国語の入力を可能にします。

上記の機能はコントロールのコンテキスト メニューに含まれます。そのため、メモ コントロールや編集コントロールのコンテキスト メニューは StyledPlatform とは異なります。

コントロール コンテキスト メニュー(Styled の場合) コンテキスト メニュー(Platform の場合)

TMemo

TMemo ContextMenu Styled RT win.png

TMemo ContextMenu Platform RT win.png

TEdit

TEdit ContextMenu Styled RT win.png

TEdit ContextMenu Platform RT win.png

ネイティブ Windows コントロールの制限事項

ネイティブ コントロールを使用する場合は、その前に、次の制限事項を考慮してください。

  • ネイティブ コントロールは、定義済みスタイルやカスタム スタイルをサポートしていません。ネイティブ コントロールの ControlType プロパティが Platform に設定されている場合、StyleLookup プロパティの値は無視されます。
  • ネイティブ コントロールは透明な背景のサポートを制限します。透明コントロールは正しく描画されません。
  • ネイティブ コントロールは、フォームの Z 順序をサポートしておらず、フォーム上にある他の FireMonkey コントロールの常に上に表示されます。詳細は、「ネイティブ Windows コントロールと非ネイティブ コントロールの組み合わせ」を参照してください。
  • 次のイベント ハンドラはサポートされておらず、実装することができません。
  • 次のイベントは発生しますが、(コントロールのビジュアライゼーションをオーバーライドするため)意図された使用ができません。ただし、システムがコントロールを再描画したことを示す情報として使用することができます。

いくつかのコントロール固有の制限もあります。

TMemo

次のイベントはサポートされておらず、TMemo に実装することはできません。

TMemo と TEdit

OnKeyXX イベント ハンドラでのパラメータ値の設定は、キー入力を抑止しません。 たとえば、OnKeyDown イベント ハンドラで KeyChar := #0; を設定し、s キーを押す場合、スタイル付き表示が何も出力しない間、ネイティブ表示はまだ s を出力します。

上記の制限は次のイベント ハンドラに適用されます。

次のイベントはサポートされておらず、TMemoTEdit に実装することはできません。

  • OnValidate
メモ: OnValidating イベントは、FireMonkey および TMemoTEdit のネイティブ表示の両方で発生します。

関連項目

サンプル