Ich verstehe nicht- Warum sollte man das tun? Record-Zuweisungen sind doch immer eine vollständige Kopie:
Weil ein String erst mal ein Pointer auf einen Speicherbereich ist und du nur den Pointer kopierst. Damit zeigen die Strings von beiden Records auf den gleichen Speicherbereich. Änderst du den einen Record, dann wird der Zweite direkt mit geändert.
Bei records habe ich es mir angewöhnt immer eine Assign-Procedure einzubauen.
Ich scheue "move" wie der Teufel das Weihwasser.
Delphi-Quellcode:
type
TMyRecord1 = packed record
datum : tdatetime;
wert : integer;
feld : AnsiString;
Procedure assign(aSource:TMyRecord1);
end;
implementation
Procedure assign(aSource:TMyRecord1);
begin
datum := aSource.adatum;
wert := aSource.wert;
feld := aSource.feld;
end;