Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
22. Dez 2022
Hier mal ein Beispiel, was zeigt, dass Assign/Assign TO nichts automatisch macht, sondern du es machen mußt.
procedure TEditMargins.Assign(Source: TPersistent);
begin
if Source is TEditMargins then
begin
FLeft := TEditMargins(Source).Left;
FRight := TEditMargins(Source).Right;
FAuto := TEditMargins(Source).Auto;
end
else
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
22. Dez 2022
Ja, die vordefinierten Assign nehmen nur persistente Klassen an.
seit paar Jahren kann man in Delphi Interfaces (in denen ein Delphi-Objekt steckt) ganz einfach mit AS in ein Objekt casten.
Wenn alles Kopierbare aber als Property/Funktionen lesbar und schreibbar ist, kannst du auch einfach diese Property/Funktionen des Interfaces zum Kopieren der Eigenschaften benutzen und mußt nicht casten....
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
22. Dez 2022
PS: Wenn es dir nur darum geht, dass es wie ein Interface/Objekt aussieht, also die Methoden und die Daten zusammen und die Funktionen in der "Klasse" drin,
dann kann man die einzelnen Funktionen auch als Methoden in den Record verschieben, statt einem Parameter auf Self zugreifen und fertig.
Bezüglich des Kopierens kannst dann diesen Record weiterhin genauso behandeln, wie bisher.
...