FireMonkey のプリミティブ コントロールを作成する

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

FireMonkey のプリミティブ コントロールとスタイル付きコントロール への移動

このチュートリアルでは、マルチデバイス フォームに正多角形を描画する FireMonkey プリミティブ コントロールを作成します。

プリミティブ コントロールは、スタイル付きコントロールと違って、選択したスタイルによってルック アンド フィールを変えることができません。プリミティブ コントロールの場合、背景色などのルック アンド フィールは、プロパティ(Fill プロパティなど)を使って変更します。この 2 つの種類のコントロールの関係を理解するには、「FireMonkey のプリミティブ コントロールとスタイル付きコントロール」を参照してください。

このチュートリアルで作成するコントロールは、TRegularPolygon という名前で、辺の数を指定するための NumberOfSides プロパティを持っています。正多角形なので、の他に頂点も同じ数になります。

TRegularPolygon コンポーネント

次に示すのは、NumberOfSides プロパティの値を様々に変化させた多角形です。

TRegPolygon.png

プリミティブ コントロールで最低限必要なのは、自身を描画するよう Paint メソッドを上書きすることです。そのために、プリミティブ コントロールでは Canvas プロパティを使用します。例として、TEllipse クラスの Paint メソッドの実装を次に示します。

procedure TEllipse.Paint;
begin
  Canvas.FillEllipse(GetShapeRect, AbsoluteOpacity);
  Canvas.DrawEllipse(GetShapeRect, AbsoluteOpacity);
end;

Canvas オブジェクトが提供している数多くのメソッドでは、内部で GPU を使用して、プラットフォームごとに描画処理のパフォーマンスを最大化しています。 そのため、プラットフォーム(Windows や macOS など)ごとのパフォーマンスの最適化を考慮する必要はありません。

もう 1 つ、上書きしなければならない可能性があるメソッドが PointInObject です。このメソッドは、指定された点がオブジェクトに属するかどうかを FireMonkey フレームワークに知らせるためのものです。FireMonkey フレームワークは、この情報を基に、コンポーネントの再描画が必要か、マウスがコントロール上にあるかなどを評価することができます。

手順

FireMonkey プリミティブ コントロールを作成するために必要な基本ステップは以下のとおりです。

関連項目