Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Unterschied Zuweisung Unterelemente / ganzes Objekt

  Alt 21. Okt 2008, 07:47
Es wird lediglich der Objektzeiger zugewiesen. Wenn Du kopieren möchtest, solltest Du von TPersistent ableiten und dessen Methode Assign überschreiben. Auszug aus der Hilfe zu TPersistent.Assign:
Zitat:
Mit Assign kopieren Sie die Eigenschaften und andere Attribute eines Objekts von einem anderen. Ein Aufruf von Assign hat die grundsätzlich folgende Form:

Destination.Assign(Source);

Dadurch wird das Zielobjekt (Destination) angewiesen, den Inhalt des Quellobjekts (Source) auf sich selbst zu kopieren.

In den meisten Anwendungen wird Assign überschrieben, um die Zuweisung von Eigenschaften aus ähnlichen Objekten vorzunehmen. Wenn das Zielobjekt die Zuweisung von Eigenschaften aus Source nicht behandeln kann, rufen Sie beim Überschreiben von Assign die geerbte Methode auf.

Wenn keine überschreibene Methode die Zuweisung von Eigenschaften aus Source behandeln kann, ruft die in TPersistent implementierte Methode die Methode AssignTo des Quellobjekts auf. Dadurch kann das Quellobjekt die Zuweisung bearbeiten. Wenn das Source-Objekt nil ist, löst TPersistent.Assign eine EConvertError-Exception aus.

Grundsätzlich ist die Anweisung "Destination := Source" nicht gleichbedeutend mit „Destination.Assign(Source)“.. Die Anweisung "Destination := Source" bewirkt, daß Destination dasselbe Objekt referenziert wie Source, während "Destination.Assign(Source)" den Inhalt des von Source referenzierten Objekts in das von Destination referenzierte kopiert.
[edit] Roter Kasten macht Pause [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat