Einzelnen Beitrag anzeigen

Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: Objekt in Array kopieren und anschließend freigeben

  Alt 31. Aug 2008, 14:46
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.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat