FMX.Controls.Model.TDataModel

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

FMX.Presentation.Messages.TMessageSenderSystem.Classes.TPersistentSystem.TObjectTDataModel

Delphi

TDataModel = class(TMessageSender)

C++

class PASCALIMPLEMENTATION TDataModel : public Fmx::Presentation::Messages::TMessageSender

プロパティ

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


説明

表示用コントロールデータ モデルです。

TDataModel は、表示用コントロールデータ モデルの基底クラスです。 下位クラスは、対応する表示用コントロールのプロパティが使用するデータ値を格納される、プロパティを定義します。

TDataModelTMessageSender を拡張しており、これはメッセージ送信機能を提供します。Data モデルは、Receiver(またはプレゼンテーション)の定義、および、Data モデルのデータが変更された際に、この Receiver へのメッセージ送信して、関連する表示用コントロール内に表示される値を更新することができます。Data モデルが Data 値を読み書きした際、Data モデルは、 MM_GETDATA および MM_DATA_CHANGED メッセージをプレゼンテーションに送信します。

TDataModel は、DataSource プロパティを定義しており、ここにはキー/値ペアのコレクションが格納されています。キーは文字列で、値は TValue のインスタンスです。TValue 型は任意の型ののデータを保持および処理することができます。このため、 DataSource コレクションは必要などんなデータを保持することができます。つまり、任意の型のデータを保持するのに、TDataModel は個別に新しいクラスを作成する必要がありません。たとえば、文字列の配列を保持することができ、これは、エディター内に表示される点後のコレクションとして使用できます。このようになります:

type
  TStringArray = TArray<string>;
var
  ArrayList1, ArrayList2: TStringArray;
...
  { Setting/Getting value of array type }
  ArrayList1 := ['Apple', 'ARC', 'Auto', 'Allday', 'Alltime'];
  Edit1.Model.Data['array_value'] := TValue.From<TStringArray>(ArrayList1);
  ...
  if Edit1.Model.Data['array_value'].IsType<TStringArray> then
    ArrayList2 := Edit1.Model.Data['array_value'].AsType<TStringArray>;

データ モデルを作成した際、プレゼンテーション コントロールをコンストラクタに渡さなければなりません。指定されたプレゼンテーション コントロールはモデルを所有します。

関連項目