Ich versuchte ein RGB-Wert, welcher aus 3 Byte besteht in einen 24Bit Integer zu packen.
Code: Alles auswählen
type
TTriByte = 0..$FFFFFF;
const
Data: packed array of TTriByte = ($000000, $FF0000, $00FF00, $0000FF);
begin
WriteLn(SizeOf(TTriByte)); // -> 4
WriteLn(PtrUInt(@Data[0]));
WriteLn(PtrUInt(@Data[1]));
WriteLn(PtrUInt(@Data[2]));
end.
Bei der Pointer Ausgabe ist der Abstand wie erwartet dann 4 Byte.
Ist sowas überhaupt möglich ?