Es gibt die Konstanten TRUE und FALSE, aber es gibt auch die
logischen Auswertungen TRUE und FALSE.
False ist 0
und True ist alles Andere.
Boolean hat 256 Werte (Byte) und LongBool sogar 4 Milliarden (Integer), aber jeweils nur Einer ist FALSE.
Im Delphi ist die True-Konstante = 1 ($01),
aber in
WinAPI/C++ ist die Konstante meistent
-1 ($FFFFFFFF bzw $FF)
Delphi-Quellcode:
B := True;
if B then OK;
if not B then NEE;
if B = True then OK;
if B = False then NEE;
B := Boolean(2); // Boolean kommt aus einer Funktion und wurde z.B. "berechnet"
if B then OK;
if not B then NEE;
if B = True then OK; // Falsch: if Byte(B) = Byte(True) then ... if 2 = 1 then
if B = False then NEE;
Ist im Prinzip das Gleiche, wie man auch Fließkommazahlen niemals auf Gleichheit prüft.