บูลีนสี่ประเภทถูกกำหนดใน Delphi: บูลีน, ไบบูล, WordBool และ Longbool สามประเภทบูลีนสุดท้ายได้รับการแนะนำสำหรับความเข้ากันได้กับภาษาอื่น ๆ
จำนวนหน่วยความจำมีค่าบูลีนทั้งสี่ประเภทดังนี้:
บูลีน 1 ไบต์
BYTEBOOL 1 ไบต์
WordBool 2 ไบต์ (1 คำ)
Longbool 4 bytes (2 คำ)
สำหรับ Bytebool ค่าของค่าคงที่จริงสามประเภทคือ WordBool และ Longbool นั้นไม่ใช่ศูนย์และเท็จคือศูนย์ซึ่งสามารถตรวจสอบได้โดยฟังก์ชั่น ORD;
สำหรับประเภทบูลีนค่าของค่าคงที่จริงคือ 1 และเท็จคือศูนย์ ในบริบทของการคาดหวังค่าบูลีนคอมไพเลอร์จะแปลงค่าที่ไม่ใช่ศูนย์ของ bytebool, wordbool และ longbool เป็นจริง
อย่างไรก็ตามการแสดงออกของบูลีนและจำนวนเต็ม/ของจริงนั้นไม่เข้ากันใน Delphi ตารางต่อไปนี้เปรียบเทียบความคล้ายคลึงและความแตกต่างระหว่างบูลีนและ Bytebool/WordBool/Longbool:
บูลีน
เท็จ <จริง
ord (เท็จ) = 0
ord (จริง) = 1
succ (false) = true
pred (true) = false
booltoStr (true) = -1 // ฟังก์ชั่นนี้ผิดปกติมาก
booltoStr (เท็จ) = 0
Bytebool, wordbool, longbool
เท็จ <> จริง
ord (เท็จ) = 0
ord (จริง) <> 0
succ (false) = true
pred (false) = true
ฟังก์ชั่น BooltoStr นั้นอธิบายไม่ได้มากที่สุด ต้นแบบของฟังก์ชั่นคือ:
ฟังก์ชั่น booltoStr (b: boolean; useboolstrs: boolean = false): string;
ตารางต่อไปนี้คือกฎการแปลงสำหรับฟังก์ชั่น:
buseboolstrsvalue ของสตริงที่ส่งคืน
TrueFalse'-1 '
จริงจริงค่าแรกของอาร์เรย์ TrueBoolStrs (ค่าเริ่มต้น 'true')
เท็จเท็จ '0'
เท็จจริงค่าแรกของอาร์เรย์ falseboolstrs (ค่าเริ่มต้น 'false')