Hallo Bernhard,
die Sprachdefinition lässt es nicht zu, in einem varianten Record weitere Felder nach dem varianten Teil zu definieren. Aus diesem Grund packt man diese Felder üblicherweise in einen Zweig. Voraussetzung ist natürlich, dass die Teile vor den gemeinsamen Feldern in allen Zweigen eine identische Gesamtgröße besitzen, was aber hier der Fall ist:
Code:
SizeOf(Pos) = SizeOf(XPos) + SizeOf(YPos)
Es ist unerheblich, ob die einzelnen Zweige unterschiedliche Gesamtgrößen besitzen. Sie liegen quasi parallel im Speicher:
Code:
Offset 0: Msg
Offset 4: Keys
Offset 6: WheelDelta
Offset 8: XPos | Pos.x
Offset 10: YPos | Pos.y
Offset 12: | Result
Gruß Hawkeye