..."HMENU ist ein cast von Integer zu LongWord.
Warum verursacht das dann immer noch einen ERangeError"...
Mein Erklärungsversuch:
- LongWord-Werte sind rein positiv und stets vorzeichenlos
- -1 ist mathematisch offensichtlich negativ und verletzt die untere Grenze(0) eines xxxxWord
- da Pascal vor dem Cast offensichtlich nach mathematischen Regeln arbeitet, macht ist das so erklärbar
- zufällig ist ab -1 binär in 32Bit z.B. in HEX-Darstellung $FFFFFFFF
=> WordZuweisungen von "-1" funktionieren ganz ohne Cast sauber, wenn man sich für solche Fälle eine ein 2. Konstante mit $FFFFFFFF definiert und nutzt
-> $FFFFFFFF würde aber wiederum bei Integer-Zuweisungen nun den oberen Bereich verletzt, weil 4,xMrd > den max 2,xMrd