Vier Boolesche Typen sind in Delphi definiert: Boolean, Bytebool, Wordbool und Longbool. Die letzten drei Booleschen Typen werden für die Kompatibilität mit anderen Sprachen eingeführt.
Die Menge des Speichers nimmt diese vier Arten von Booleschen Werten wie folgt ein:
Boolean 1 Byte
Bytebool 1 Byte
Wordbool 2 Bytes (1 Wort)
Longbool 4 Bytes (2 Wörter)
Für Bytebool sind die Werte der drei Arten von echten Konstanten, Wordbool und Longbool, ungleich Null, und Falsch ist Null, was durch die ORD-Funktion überprüft werden kann;
Für den Booleschen Typ ist der Wert der echten Konstante 1 und falsch null. Im Kontext der erwarteten Booleschen Werte konvertiert der Compiler die Werte von Byteboil, Wordbool und Longbool ungleich Null in true.
Boolesche Ausdrücke und Ganzzahl/Real sind jedoch in Delphi unvereinbar. Die folgende Tabelle vergleicht die Ähnlichkeiten und Unterschiede zwischen booleschen und bytebool/wordbool/longbool:
Boolean
Falsch <wahr
Ord (falsch) = 0
Ord (true) = 1
Erlangt (falsch) = true
Pred (true) = false
Booltostr (true) = -1 // Diese Funktion ist sehr abnormal
Booltostr (false) = 0
Bytebool, Wordbool, Longbool
Falsch <> wahr
Ord (falsch) = 0
Ord (wahr) <> 0
Erproduzieren (falsch) = true
Pred (falsch) = true
Die Booltostr -Funktion ist die unerklärlichste. Der Prototyp der Funktion ist:
Funktion booltostr (b: boolean; useboolstrs: boolean = false): String;
Die folgende Tabelle sind die Conversion -Regeln für Funktionen:
BUSBOOLSTRSVALUE der zurückgekehrten String
TrueFalse'-1 '
True true Der erste Wert des Truboolstrs Array (Standard, 'true')
Falsch falsch '0'
False true Der erste Wert des Falseboolstrs -Arrays (Standard, 'Falsch')