Anzeigen: Delphi C++
Anzeigeeinstellungen

Definieren und Implementieren der bindbaren Objekte

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Tutorial: Programmgesteuerte Verwendung von LiveBinding


Achtung: Die hier beschriebene programmseitige Methode zum Implementieren von Bindungsausdrücken stellt NICHT das Standardverfahren dar. Normalerweise würden Sie den Objektinspektor (die Standardmethode) in einer VCL- oder FMX-Anwendung verwenden. Wahrscheinlich werden Sie die programmseitige Methode zum Erstellen von Bindungsausdrücken nie benötigen. In diesem Tutorial wird jedoch gezeigt, dass es möglich ist, solche Ausdrücke manuell zu erstellen.
Beispiele für das Standardverfahren bei der Verwendung von LiveBindings finden Sie unter Tutorial: Verwendung von LiveBinding in VCL-Anwendungen und Tutorial: Mit LiveBinding eine FireMonkey-Anwendung ohne Quellcode erstellen.

Nun sollten Sie zwei bindbare Objekte definieren, die aneinander gebunden werden sollen. Nennen Sie diese Objekte z.B. TMyObject1 und TMyObject2. Diese Objekte werden, wie nachfolgend gezeigt, als zwei Klassen implementiert. Jede Klasse hat zwei Eigenschaften – eine ist ein String und die andere ein Integer.

Definition des ersten Objekts

 type
   TMyObject1 = class(TObject)
   private
     FIntegerValue: Integer;
     FStringValue: String;
   public
     property IntegerValue: Integer read FIntegerValue write FIntegerValue;
     property StringValue: String read FStringValue write FStringValue;
   end;
 class TMyObject1 : public TObject {
 private:
 	Integer FIntegerValue;
 	String FStringValue;
 
 public:
 	__property Integer IntegerValue = {
 		read = FIntegerValue, write = FIntegerValue};
 	__property String StringValue = {read = FStringValue, write = FStringValue};
 };

Definition des zweiten Objekts

 type
   TMyObject2 = class(TObject)
   private
     FIntegerValue: Integer;
     FStringValue: String;
   public
     property IntegerValue: Integer read FIntegerValue write FIntegerValue;
     property StringValue: String read FStringValue write FStringValue;
   end;
 class TMyObject2 : public TObject {
 private:
 	Integer FIntegerValue;
 	String FStringValue;
 
 public:
 	__property Integer IntegerValue = {
 		read = FIntegerValue, write = FIntegerValue};
 	__property String StringValue = {read = FStringValue, write = FStringValue};
 };

Der Einfachheit halber wurden beide Objekte auf exakt dieselbe Weise deklariert. Da diese Objekte keine Methoden enthalten, ist keine Implementierung erforderlich. Der Konstruktor und der Destruktor sind von System.TObject geerbt, und Sie können die Objekte einfach instantiieren und freigeben.

Instantiierung und Freigabe der Objekte

 var
   MyObject1: TMyObject1;
   MyObject2: TMyObject2;
 
 begin
   MyObject1 := TMyObject1.Create;
   MyObject2 := TMyObject2.Create;
   try
     { various binding operations - see next topic / step }
   finally
     MyObject1.Free;
     MyObject2.Free;
   end;
 end;
 int _tmain(int argc, _TCHAR* argv[]) {
 	TMyObject1 *MyObject1 = new TMyObject1();
 	TMyObject2 *MyObject2 = new TMyObject2();
 
 	try
 	{
 		// various binding operations - see next topic / step
 	}
 	__finally {
 		delete MyObject1;
 		delete MyObject2;
 		delete MyResultObject;
 	}
 
 	return 0;
 }

Ein drittes Objekt, MyResultObject, muss deklariert werden und enthält die gebundenen Daten der beiden zuvor definierten Objekte.

 type
   TMyResultObject = class(TObject)
   private
     FIntegerValue: Integer;
     FStringValue: String;
   public
     property IntegerValue: Integer read FIntegerValue write FIntegerValue;
     property StringValue: String read FStringValue write FStringValue;
   end;
 class TMyResultObject : public TObject {
 private:
 	Integer FIntegerValue;
 	String FStringValue;
 
 public:
 	__property Integer IntegerValue = {
 		read = FIntegerValue, write = FIntegerValue};
 	__property String StringValue = {read = FStringValue, write = FStringValue};
 };

Aus Konsistenzgründen entspricht das dritte Objekt den beiden anderen.

Weiter

Zurück

In anderen Sprachen