@himitsu
Danke für die Erklärung. Das ist einleuchtend. Aber warum klappte das bislang?
Erstmal hattest du Glück, daß der Pufferüberlauf entweder nichts Wichtiges überschrieb oder die Speicherausrichtung dir zufällig half.
Und BOOL/LongWool ist 4 Byte, wenn da bei einem True zufällih im niedrigsten Byte ein/einige Bits gesetzt sind, dann wird das auch als True erkannt.
Fazit: du hattest viel Glück
@Sir Rufo: jupp, war'n Denk/-Schreibfehler
@Detlef: Ja, beim Prüfen muß auf <>0 (not false) verglichen werden.
Die Konstanten für TRUE geben ja nur einen möglichen Wert for.
WinAPI 0 und
-1 und beim Delphi-Boolean ist es 0 und 1 und schon erkennt man auch ein kleines Problem ala -1 <> 1.