Delphi alignmentiert
standardmäßig nur soweit, wie es jeweils der größte Type verlangt.
Deine Double sind nur 8 Byte, also werden sie auch an 8 Byte-Grenzen ausgerichtet.
Bytes werden an Byte-Grenzen ausgerichtet, wie z.B. ein
array[0..7] of Byte
oder ein Record mit 8 Byte, da der größe Eineltyp ja ein Byte ist.