Datum 2021-06-05
FPC_Version 3.3.1
SVN-Revision:65172
x86_64-linux-gtk2
Dies ist ein Record der vom Syntax her richtig ist. Er kann normal Kompiliert und problemlos benutzt werden.
Code: Alles auswählen
XYRec = record // oder auch XYRec = packed record
XY_ComNr :Integer;
XY_F:Integer; //Vorschub
XY_X : Integer;//Absolutposition der X-Achse
XY_Y : Integer;//Absolutposition der Y-Achse
XY_Z : Integer;//Absolutposition der Z-Achse
XY_Schritte :Integer;
case Integer of
0: (XY_Schritt_X :Double;
XY_Schritt_Y :Double;
XY_Schritt_Z :Double; );
1: (KR_SchrittWi :Double;
KR_CentX :Integer;
KR_CentY :Integer;
KR_Radius :Integer;
KR_StartWi :Integer;);
end;
Var xy : XYRec;
Aber wenn ich den Record speichern möchte und die Länge mit L := sizeof(xy); ermitteln möchte, bekomme ich als Ergebnis 48, was natürlich falsch ist !
Alles nach XY_Schritte wird ignoriert !
Unter Delphi habe ich das sehr oft verwendet und es klappte immer problemlos. Auch wenn Jahren mit Lazarus auf dem Raspi das Problem bestanden hätte, währe mir das sicher aufgefallen.