Empat tipe Boolean didefinisikan dalam Delphi: Boolean, Bytebool, Wordbool, dan Longbool. Tiga tipe Boolean terakhir diperkenalkan untuk kompatibilitas dengan bahasa lain.
Jumlah memori menempati empat jenis nilai boolean ini adalah sebagai berikut:
BOOLEAN 1 byte
Bytebool 1 byte
WordBool 2 byte (1 kata)
Longbool 4 byte (2 kata)
Untuk bytebool, nilai-nilai dari tiga jenis konstanta sejati, wordbool dan longbool, tidak nol, dan false adalah nol, yang dapat diverifikasi oleh fungsi ORD;
Untuk tipe boolean, nilai konstanta sejati adalah 1 dan false adalah nol. Dalam konteks mengharapkan nilai boolean, kompiler mengubah nilai non-nol bytebool, wordbool dan longbool menjadi benar.
Namun, ekspresi Boolean dan Integer/Real tidak kompatibel di Delphi. Tabel berikut membandingkan persamaan dan perbedaan antara boolean dan bytebool/wordbool/longbool:
Boolean
False <true
Ord (false) = 0
Ord (true) = 1
Succ (false) = true
Pred (true) = false
Booltostr (true) = -1 // Fungsi ini sangat abnormal
Booltostr (false) = 0
Bytebool, wordbool, longbool
False <> true
Ord (false) = 0
Ord (true) <> 0
Succ (false) = true
Pred (false) = true
Fungsi Booltostr adalah yang paling tidak dapat dijelaskan. Prototipe fungsi adalah:
fungsi booltostr (b: boolean; useBoolStrs: boolean = false): string;
Tabel berikut adalah aturan konversi untuk fungsi:
Buseboolstrsvalue dari string yang dikembalikan
Truefalse'-1 '
Benar Nilai pertama dari array TrueBoolStrs (default, 'true')
False false '0'
False true nilai pertama dari array falseeboolstrs (default, 'false')