FMX.Controls.Model.TDataModel

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

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

Delphi

TDataModel = class(TMessageSender)

C++

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

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
class public
FMX.Controls.Model.pas
FMX.Controls.Model.hpp
FMX.Controls.Model FMX.Controls.Model


Beschreibung

Datenmodelle für dargestellte Steuerelemente.

TDataModel ist die Basisklasse von Datenmodellen für dargestellte Steuerelemente. Abgeleitete Klassen definieren Eigenschaften, die von Eigenschaften zugehöriger dargestellter Steuerelemente verwendete Datenwerte speichern.

TDataModel erweitert die Klasse TMessageSender, die die Funktionalität zum Senden von Botschaften bereitstellt. Ein Datenmodell kann einen Empfänger (oder eine Darstellung) definieren und Botschaften an diesen Empfänger senden, wenn sich die Daten eines Datenmodells ändern, um die im zugehörigen dargestellten Steuerelement angezeigten Werte zu aktualisieren. Wenn ein Datenmodell Datenwerte liest oder schreibt, sendet es MM_GETDATA- und MM_DATA_CHANGED-Botschaften an eine Darstellung.

TDataModel definiert die Eigenschaft DataSource, die eine Sammlung von Schlüssel/Wertepaaren enthält. Schlüssel sind Strings und Werte sind Instanzen von TValue. Der Typ TValue kann Daten eines beliebigen Typs aufnehmen und verarbeiten, daher kann die Sammlung DataSource alle erforderlichen Daten aufnehmen. Das bedeutet, dass TDataModel keine neue eigene Klasse erstellen muss, um Daten eines beliebigen Typs aufzunehmen. Beispielsweise kann TDataModel ein String-Array aufnehmen, das als Sammlung in einem Editor verwendet werden kann. Zum Beispiel:

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>;

Wenn Sie ein Datenmodell erstellen, müssen Sie an den Konstruktor ein Darstellungssteuerelement übergeben. Das angegebene Darstellungssteuerelement ist Eigentümer des Modells.

Siehe auch