Objekte in Delphi sind im Grunde Zeiger (Pointer) auf die Speicheradresse unter der die Informationen liegen. Bei einer Zuweisung:
Delphi-Quellcode:
var A, B: TFoo;
begin
A := TFoo.Create;
B := A;
wird nicht der Inhalt des Objektes übergeben, sondern die SPeicheradresse, somit wird bei
Delphi-Quellcode:
A.Name := 'Hallo';
ShowMessage (b.Name + ' Welt!');
Hallo Welt ausgegeben, eben weil hier die Adresse ausgetauscht werden.
um ein Objekt zu kopieren wird in Delphi Assign/AssignTo verwendet und muss für jede Klasse entsprechen überschrieben werden (welche Eigenschaften kopiert werden sollen.
Also musst Du lediglich bei dir
Delphi-Quellcode:
type
A =
class (TObject)
public
proberty B: TB
read FB write FB;
end;
machen und du hast dann nach der Zuweisung einer Instanz von B immer Zugriff auf die aktuellen Daten