Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TPersistent.Assign ? (https://www.delphipraxis.net/12223-tpersistent-assign.html)

tim128 23. Nov 2003 12:39


TPersistent.Assign ?
 
Könnte mir vielleicht jemand helfen. Ich möchte (immer noch) ein Objekt kopieren.
In meinem Beispiel funktioniert dies leider nicht. Die Delphi-Hilfe hat mir leider auch nicht geholfen, das Problem besser zu verstehen…

Delphi-Quellcode:
Tp1 = class(TPersistent)
  s: string;
end;

Tp2 = class(TPersistent)
  s: string;
end;

procedure kopieren;
var
  o1: Tp1;
  o2: Tp2;
begin
  o1 := Tp1.Create;
  o2 := Tp2.Create;
  o1.s := ‘Objekt 1’;
  o2.s := ‘Objekt 2’;

  o2.Assign(o1); //Hier soll o2 eine Kopie von o1 sein

  o1.Free;

  showmessage(o2.s);

  o2.Free;
end;

maximov 23. Nov 2003 14:38

Re: TPersistent.Assign ?
 
Hallo.

TPersistent.assign und assignTo sind virtuelle methoden, deren eigentliche funktionalität zum kopieren musst du selbst implementieren -> überschreib (override) die methode assignTo in deiner klasse und füg dort den code zum kopieren ein...dann sollte es klappen :wink: WICHTIG: Nicht 'inherited' aufrufen, denn da wird der fehler ausgelöst.

mfg.
maximov.

Touchdown 24. Nov 2003 22:39

Re: TPersistent.Assign ?
 
Teste einfach mit TStrings, ich denke du hast es im wesentlichen schon verstanden. :angle:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz