Ich hab auch schmerzlich feststellen müssen, das scheinbar die Länge von Records begrenzt ist ... wir hatten hier so ein Monster von 150 shortstrings. Der kam nicht ganz auf der anderen Seite an
Eventuell war es was mit der Speicherausrichtung in den records.
* entweder selbst festlegen, wie die sein soll, oder immer PACKED verwenden
http://docwiki.embarcadero.com/RADSt...ields_(Delphi)
Ich bin mir aber ganz sicher dass es nicht am Record selbst lag, denn eine Grenze gibt es nicht.
Record als CONST-Parameter (oder VAR) wird nur als Referenz übergeben, also garnichts kopiert.
Ohne CONST/VAR/OUT wird der Value übergeben, also eine Kopie auf den Stack gegeben.
Auch als lokale Variable liegt der Record auf dem Stack.
Und wenn nicht genug Speicher auf dem Stack ist, dann knallt es, aber es wird garantiert nichts abgeschnitten.
Übergeben wird jedenfalls definitiv immer alles, aber wenn auf beiden Seiten mit einer unterschiedlichen Speicherausrichtung oder unterschiedlichen Speichergrößen (Char, PChar, Integer/NativeInt, ...) gearbeitet wird, dann stimmen die Offsets im Record natürlich nicht.