Cuatro tipos booleanos se definen en Delphi: booleano, bytebool, wordbool y longbool. Los últimos tres tipos booleanos se introducen para la compatibilidad con otros idiomas.
La cantidad de memoria ocupa estos cuatro tipos de valores booleanos es el siguiente:
Booleano 1 byte
Bytebool 1 byte
WordBool 2 bytes (1 palabra)
Longbool 4 bytes (2 palabras)
Para Bytebool, los valores de los tres tipos de constantes verdaderas, WordBool y Longbool, no son cero, y los falsos son cero, que pueden verificarse por la función ORD;
Para el tipo booleano, el valor de la constante verdadera es 1 y el falso es cero. En el contexto de esperar los valores booleanos, el compilador convierte los valores no cero de bytebool, wordbool y longbool en verdad.
Sin embargo, las expresiones booleanas y el entero/real son incompatibles en Delphi. La siguiente tabla compara las similitudes y diferencias entre booleano y bytebool/wordbool/longbool:
Booleano
Falso <verdadero
Ord (falso) = 0
Ord (verdadero) = 1
Succ (falso) = verdadero
Pred (verdadero) = falso
Booltostr (true) = -1 // Esta función es muy anormal
Booltostr (falso) = 0
Bytebool, wordbool, longbool
Falso <> verdadero
Ord (falso) = 0
Ord (verdadero) <> 0
Succ (falso) = verdadero
Pred (falso) = verdadero
La función booltostr es la más inexplicable. El prototipo de la función es:
función booltostr (b: boolean; usoBoolstrs: boolean = false): string;
La siguiente tabla son las reglas de conversión para las funciones:
Buseboolstrsvalue de la cadena devuelta
TrueFalse'-1 '
Verdadero Verdadero El primer valor de TrueBoolStrs Array (predeterminado, 'True')
Falso falso '0'
False Verdadero El primer valor de la matriz FalseBoolStrs (predeterminado, 'falso')