FireMonkey コンポーネントのレンダリング

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

FireMonkey コンポーネント ガイド への移動

2D 基本コンポーネントのレンダリング

コンポーネントのレンダリングを理解するには、まず、関係のある FMX クラス階層について考えます。 TComponent からの TFmxObject 分岐が FMX のルートを形成しており、オブジェクトのライフサイクルを提供します。 そこから TControl (キャンパスをカプセル化し、描画機能を追加する)が派生しています。

TControl の関連する 2 つの分岐として、FMX.Objects ユニット内のプリミティブ クラスと、FMX.Controls、FMX.ExtCtrls などのユニット内のスタイル付きコントロール(ユーザーとのやり取りに関係)があります。 プリミティブには、以下のような図形や画像などのオブジェクトがあります。

さらに、以下のような下位クラスもあります。

スタイル付きコントロールは、TStyledControl から派生し、次のものがあります:

描画か合成か

プリミティブでは、TControl.Paint プロシージャをオーバーライドし、キャンパスに直接描画します。 TStyledControl を具体化した各スタイルは、サブコントロールとプリミティブから成るツリーの配置になります。 スタイルは最終的に、一連のプリミティブが階層化したものに帰着し、今度はそれらのプリミティブがキャンバスに描画されて、コントロールをレンダリングします。

カスタム コンポーネントはどちらか一方の手法で描画することができますし、カスタム プリミティブが含まれているコントロールがある場合は両者の組み合わせで描画することもできます。

  • カスタム プリミティブの場合は、直接 TControl のサブクラスを作成するか、TShape のサブクラスを作成します(TShape には、いくつかのブラシと境界を表す四角形が用意されています)。 必要なプロパティを追加したあと、TControl.Paint をオーバーライドして、TControl.Canvas 上に描画するようにします。
  • TStyledControl のサブクラスでは、TStyledControl.GetStyleObject でクラス名を基に簡単な検索ルーチンを使って、フォームの StyleBook プロパティに割り当てられたスタイル リソースの中から、自らに該当するものを見つけようとします。
    • アプリケーション開発者は、適切な名前のスタイルを作成することで、いつでもコントロールをカスタマイズできます。 そのスタイルは、コントロールのすべてのインスタンスに自動的に適用されます。 また、StyleLookup プロパティを設定することで、個々のコントロールにスタイルを割り当てることができます。
    • スタイル テーマ作成者は、適切な名前のスタイルをテーマ内に作成することで、カスタム コントロールのスタイルを組み込むことができます。
    • 一致するスタイルがない場合にコントロールの外観を定義するには、コンポーネント ライタは、GetStyleObject をオーバーライドすることができます。

関連項目