FMX.Controls.Presentation.TPresentedControl

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

FMX.Controls.TStyledControlFMX.Controls.TControlFMX.Types.TFmxObjectSystem.Classes.TComponentSystem.Classes.TPersistentSystem.TObjectTPresentedControl

Delphi

TPresentedControl = class(TStyledControl, IMessageSendingCompatible, IControlTypeSupportable, ISceneChildrenObserver)

C++

class PASCALIMPLEMENTATION TPresentedControl : public Fmx::Controls::TStyledControl

プロパティ

種類 可視性 ソース ユニット
class public
FMX.Controls.Presentation.pas
FMX.Controls.Presentation.hpp
FMX.Controls.Presentation FMX.Controls.Presentation


説明

表現用コントロールの基底クラスで、複数の UI プレゼンテーションを提供することができます。表現用コントロールは、ユーザー データ(データ モデル)と UI プレゼンテーション(プレゼンテーション レイヤ)を処理するために、別のオブジェクトを使用します。

表現用コントロールの次のプロパティにより、ユーザー モデルと UI プレゼンテーションのこの分離使用が可能になります:

プレゼンテーション コントロールは、これらのプロパティのインスタンスを実行時に自動的に作成します。 プレゼンテーション コントロールのインスタンスを作成するとすぐに空のモデルが作成され、プレゼンテーション コントロールが読み込みを行うとプレゼンテーション プロキシが作成されます。

DefineModelClass を再実装して、表示されたコントロールがそのデータ モデルのために使用するクラスを決定します。DefinePresentationName を再実装して、表示されたコントロールが使用する、デフォルトのプレゼンテーション プロキシの名前を決定します。 表示されるコントロールの特定のインスタンスのプレゼンテーション プロキシに対するカスタム名を定義するには、OnPresentationNameChoosing イベントを代わりに処理します。

ControlType プロパティは、プレゼンテーション層がコントロールを表示するときに、アプリケーションが動作しているプラットフォームのネイティブ コントロールを使用するか(Platform)、またはデフォルトの FireMonkey スタイル システムを使用するか(Styled)を示します。FireMonkey がネイティブ表示をサポートしていないプラットフォームでは、ControlType プロパティの値にかかわらず、デフォルトのスタイル付き表示が使われます。

プレゼンテーションでの作業

表示用コントロールは、プレゼンテーションを操作するために次のメソッドとプロパティを使用します:

  • Presentation プロパティは、使用されるプレゼンテーションへのアクセスを提供します。Presentation は、PresentationProxyReceiver プロパティから、プレゼンテーションを取得します。
  • PresentationProxy プロパティは、読み込まれるプレゼンテーション プロキシへのアクセスを提供します。 LoadPresentation メソッドは、OnPresentationNameChoosing イベント ハンドラまたは DefinePresentationName によって返された、プレゼンテーション プロキシ名を持つ、プレゼンテーション プロキシを作成およびロードします。LoadPresentationInitPresentation を呼出し、さらに、新しいプレゼンテーションがロードされる子コントロール群に通知するための AncestorPresentationLoaded を呼び出します。InitPresentation は、ロードされたプレゼンテーション プロキシを使用して、初期メッセージ(PM_INITPM_SET_VISIBLEPM_GET_SIZE)をプレゼンテーションに送信します。LoadPresentation は、Loaded コントロールから、フォーム ファイルがメモリに読み込まれた後に、自動的に呼び出されます。LoadPresentation現在の Presentation Proxy Factory を使用して、Presentations コレクションに登録済みの適切なプレゼンテーション プロキシ名を取得します。
  • HasPresentationProxy メソッドは、プレゼンテーション プロキシがロードされているかどうかを取得します。
  • ControlType プロパティは、どのタイプのプレゼンテーションがロードされるべきかを定義します。Styled は、標準の FireMonkey スタイル付きコントロールを表します。 このようなコントロールは、指定されたプラットフォームのすべてのバージョンにおいて、同じに見えます。 これが、デフォルト値です。 Platform は、ターゲット プラットフォームのネイティブ コントロールを表します。 ControlType 値は、プレゼンテーション プロキシ クラス名を DefinePresentationName に生成するために使用されます。

モデルでの作業

表示用コントロールは、モデルを操作するために次のメソッドとプロパティを使用します:

  • Model プロパティは、表示用コントロールで使用されるデータ モデルへのアクセスを提供します。この Model データ モデルは、表示用コントロールのコンストラクタで作成されます。
  • DefineModelClass メソッドは、現在の表示用コントロールコンストラクタが、表示用コントロールのためのデータ モデルを作成する際に使用する、データ モデル クラスクラス参照を返します。デフォルトでは、DefineModelClassTDataModel を返します。下位クラスは、DefineModelClass を再実装して、下位の表示用コントロールが自分のデータ モデルのために使用するデータ モデル クラスを、決定できるようにします。
  • GetModel メソッドは、下位の表示用コントロール クラスで、データ モデルを、この表示用コントロールで使用されるデータ モデル クラスにキャストするために使用されます。

関連項目