| DaRkFiRe hat folgendes geschrieben: |
| Was ich damit sagen will: LONGBOOL = BOOL = BOOLEAN = TRUE / FALSE |
Nicht ganz.
Byte(Boolean(False)) = 0
Byte(Boolean(True)) = 1
Byte(BOOL(False)) = 0
Byte(BOOL(True)) <> 0 // hier liegt der Unterschied
Wer also direkt auf True prüft kann bei API Funktionen sein Wunder erleben.
Delphi-Quelltext
Muss nicht unbegingt True ergeben. Wenn APIFunction nun -1 oder 2 liefert ist das für BOOL auch TRUE. Jedoch wenn man es mit dem Boolean.True vergleicht macht der Compiler daraus ein
Delphi-Quelltext
und das geht dann in die Hose.
Der Delphi-Compiler weiß von diesem Problem und wandelt Funktionsergebnisse, die vom Typ BOOL sind automatisch in den Boolean Typ um, womit es nicht zu obigem Problem kommen sollte.