Moin Gregor,
das sollte sich grundsätzlich über case lösen lassen.
In Deinem Beispiel müsste das so aussehen:
Delphi-Quellcode:
type
TMyUnion = packed record
case byte of
1 : (Alignment : int64;)
2 : (Length : DWORD;
IfIndex : DWORD;)
end;
Schau doch mal in der Hilfe unter dem Stichwort "variante Records".
Ein gravierendes Problem gibt es allerdings auf jeden Fall:
Der variante Teil
muss am Ende der Record-Deklaration stehen, so dass man ziemliche Verrenkungen machen muss, wenn man so eine Struktur mittendrin braucht.