Quatro tipos booleanos são definidos em Delphi: Boolean, ByteBool, Wordbool e Longbool. Os últimos três tipos booleanos são introduzidos para compatibilidade com outros idiomas.
A quantidade de memória ocupa esses quatro tipos de valores booleanos é a seguinte:
Booleano 1 byte
BYTEBOOL 1 BYTE
WordBool 2 bytes (1 palavra)
Longbool 4 bytes (2 palavras)
Para ByteBool, os valores dos três tipos de constantes verdadeiras, Wordbool e Longbool, são diferentes de zero e falsa é zero, que pode ser verificado pela função ORD;
Para o tipo booleano, o valor da constante verdadeira é 1 e False é zero. No contexto de esperar valores booleanos, o compilador converte valores diferentes de zero de ByteBool, Wordbool e LongBool em verdadeiro.
No entanto, expressões booleanas e número inteiro/real são incompatíveis em Delphi. A tabela a seguir compara as semelhanças e diferenças entre booleano e bytebool/wordbool/longbool:
Booleano
Falso <verdadeiro
Ord (false) = 0
Ord (true) = 1
Succ (false) = true
Pred (true) = false
Booltostr (true) = -1 // Esta função é muito anormal
Booltostr (false) = 0
BYTEBOOL, WordBool, Longbool
Falso <> verdadeiro
Ord (false) = 0
Ord (verdadeiro) <> 0
Succ (false) = true
Pred (false) = true
A função Booltostr é a mais inexplicável. O protótipo da função é:
função booltstr (b: boolean; useBoolstrs: boolean = false): string;
A tabela a seguir são as regras de conversão para funções:
BuseBoolstrsValue da string retornada
Truefalse'-1 '
Verdadeiro, o primeiro valor da matriz TrueBoolstrs (padrão, 'true')
Falso falso '0'
FALSO Verdadeiro O primeiro valor da matriz de falsosBoolstrs (padrão, 'false')