Wobei man dort schön sieht, dass man dann expliziet auf if (var = true) then
prüfen muss, wenn man tatsächlich TRUE benötigt und nicht nur "ergibt Wahr".
Ja und nein ... siehe mein PHP-Beispiel
if (is_bool(x) and x) { ... }
, also
VarIsBool(x) and X
.
Aber dort gibt es einen Sonderfall, denn Variant speichert den "Boolean" als WordBool (2 Byte), beim Auslesen als Boolean (1 Byte), nimmt Delphi eine Typkonvertierung vor und gibt entweder True (1), False(0) oder eine
Exception (nicht konvertiervar) raus,
denn einfach nur abschneiten (billig casten) kann falsch sein, da $0100 Wahr ist, aber $00 somit ein Problem wäre.