Minimierte Beispiele, sind eben nicht immer naturgeträu.
z.B. BOOL aus WinAPIs ist 32 Bit / 4 Byte groß und wird dann auf das 1 Byte (Boolean) umgebrochen, was aber eben im Delphi auch nicht ganz genau dem ByteBool entspricht.
Unter Windows ist die Konstante "True" z.B. -1, aber im Pascal bzw. Delphi ist es +1.
Boolean ist nunmal eben nicht 1 Bit, was wirklich ausschließlich 0 und 1 kennen würde.
Außerdem kann ein Boolean eben aus anderen Werten
gekastet generiert sein
in C-Sprachen und z.B. Javascript geht auch ein
if (i)
, wobei I = Integer ... alles <> 0 ist nunmal "True".
Delphi-Quellcode:
var B: Boolean;
//B := Boolean(0); // immer False (aber geht auch nicht anders)
B := Boolean(2); // eigentlich "True", aber eben nicht genau das "eine" True
if B = True then
ShowMessage('True')
else if B = False then
ShowMessage('False')
else
ShowMessage('auch True');
if B then
ShowMessage('True')
else if not B then
ShowMessage('False')
else
ShowMessage('nie');