System.Classes.TPersistent.Assign

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

procedure Assign(Source: TPersistent); virtual;

C++

virtual void __fastcall Assign(TPersistent* Source);

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure
function
public
System.Classes.pas
System.Classes.hpp
System.Classes TPersistent


Beschreibung

Kopiert den Inhalt eines anderen, gleichen Objekts.

Assign kopiert Eigenschaften und andere Attribute des angegebenen Source-Objekts in das aktuelle Objekt. Der Standardaufruf von Assign lautet:

Destination.Assign(Source); {Delphi}
Destination->Assign(Source); // C++

Damit wird dem aktuellen Objekt mitgeteilt, den Inhalt des Source-Objekts in sich selbst zu kopieren.

Die meisten Objekte überschreiben Assign, um die Zuweisung von Eigenschaften aus gleichen Objekten zu behandeln. Rufen Sie beim Überschreiben von Assign die geerbte Methode auf, wenn das Zielobjekt die Zuweisung von Eigenschaften aus der Klasse des Parameters Source nicht behandeln kann.

Wenn keine überschriebene Assign-Methode die Zuweisung von Eigenschaften aus Source behandeln kann, ruft die in TPersistent implementierte Methode die AssignTo-Methode des Zielobjekts auf. Dadurch wird dem Zielobjekt ermöglicht, die Zuweisung zu behandeln. Wenn das Source-Objekt nil (Delphi) oder NULL (C++) ist, löst Assign eine EConvertError-Exception aus.

Im Allgemeinen entspricht die Anweisung

Destination := Source; {Delphi}
Destination = Source; // C++

nicht der folgenden Anweisung

Destination.Assign(Source); {Delphi}
Destination->Assign(Source); // C++

Mit dem Zuweisungsoperator wird die Destination-Referenz zum selben Objekt wie Source; die Assign-Methode kopiert dagegen den Inhalt des von Source referenzierten Objekts in das von Destination referenzierte Objekt.

Hinweis: Die Typen einiger Eigenschaften sind ebenfalls Objekte. Wenn diese Eigenschaften über Methoden verfügen, die mit Assign den Wert der Eigenschaft festlegen, dann führt der Zuweisungsoperator in diesen Fällen dasselbe wie die Assign-Methode aus.

Siehe auch