Quatre types booléens sont définis dans Delphi: Boolean, Bytebool, Wordbool et Longbool. Les trois derniers types booléens sont introduits pour la compatibilité avec d'autres langues.
La quantité de mémoire occupe ces quatre types de valeurs booléennes les suivantes:
Booléen 1 octet
Bytebool 1 octet
Wordbool 2 octets (1 mot)
Longbool 4 octets (2 mots)
Pour Bytebool, les valeurs des trois types de constantes vraies, Wordbool et Longbool, sont non nuls et false est zéro, qui peut être vérifiée par la fonction ORD;
Pour le type booléen, la valeur de la constante vraie est 1 et false est nulle. Dans le contexte de l'attente des valeurs booléennes, le compilateur convertit les valeurs non nulles de Bytebool, Wordbool et Longbool en True.
Cependant, les expressions booléennes et les entiers / réels sont incompatibles à Delphi. Le tableau suivant compare les similitudes et les différences entre le booléen et le bytebool / wordbool / longbool:
Booléen
Faux <vrai
Ord (false) = 0
Ord (true) = 1
Succ (false) = vrai
Pred (true) = false
Booltostr (true) = -1 // Cette fonction est très anormale
Booltostr (false) = 0
Bytebool, Wordbool, Longbool
Faux <> Vrai
Ord (false) = 0
Ord (true) <> 0
Succ (false) = vrai
Pred (false) = true
La fonction Booltostr est la plus inexplicable. Le prototype de la fonction est:
fonction booltoStr (b: booléen; useboolstrs: boolean = false): string;
Le tableau suivant est les règles de conversion pour les fonctions:
Buseboolstrsvalue de la chaîne retournée
Truefalse'-1 '
Vrai True la première valeur du tableau TrueBoolstrs (par défaut, «vrai»)
Faux faux '0'
FAUX TRUE La première valeur du tableau Falseboolstrs (par défaut, «False»)