Move mit Strings in Records gehen nicht.
Genauer bei "Long-Strings" und WideString.
ShortString und statische Char-Arrays gehn.
Genauso wie es bei Interfaces, Variants und dynamischen Arrays auch nicht geht, bzw. nicht ohne Beachteung gewisser Dinge, bei deren automatischen Speicherwerwaltung.
In der
Unit System gibt es eine Abteilung "Compiler helper for initializing/finalizing variable" mit netten Funktionen.
New
Dispose
Initialize
InitializeArray
InitializeRecord
Finalize
FinalizeArray
FinalizeRecord
CopyArray
CopyRecord
Welche Delphi intern verwendet und die man notfalls selber verwenden könnte, aber dennoch sollte man ein bissl Ahnung davon haben, wie z.B. die Speicherverwaldung und Referenzzählung arbeiten.
Ansonsten: Finger weg, von direkten Speichermanipulationen. (Pointer, Move und Co.)