Die klassische Implementation von Assign sieht so aus:
Delphi-Quellcode:
procedure TMeinObjekt.Assign(Source: TPersistent);
begin
if Source is TMeinObjekt then
begin
Feld1 := TMeinObjekt(Source).Feld1;
Feld2 := TMeinObjekt(Source).Feld2;
Feld3 := TMeinObjekt(Source).Feld3;
Feld4 := TMeinObjekt(Source).Feld4;
end
else
inherited;
end;
Du musst also einfach die Felder von Hand kopieren. Lediglich bei Feldern, die selbst Objekte beinhalten, solltest du überlegen, ob du nicht wiederum Assign verwendest, falls die Klasse es implementiert.
Bezüglich Interfaces: Dann musst du Properties mit Get- und Set-Methoden verwenden. Das ist allerdings etwas Schreibarbeit.