يتم تعريف أربعة أنواع منطقية في Delphi: Boolean و Bytebool و WordBool و Longbool. يتم تقديم أنواع Boolean الأخيرة للتوافق مع اللغات الأخرى بشكل عام.
كمية الذاكرة تشغل هذه الأنواع الأربعة من القيم المنطقية هي كما يلي:
منطقية 1 بايت
Bytebool 1 بايت
Wordbool 2 Bytes (كلمة واحدة)
Longbool 4 بايت (كلمتين)
بالنسبة إلى Bytebool ، فإن قيم الأنواع الثلاثة من الثوابت الحقيقية ، WordBool و Longbool ، غير صفرية ، وخطأ صفر ، والذي يمكن التحقق منه بواسطة وظيفة ORD ؛
بالنسبة لنوع Boolean ، فإن قيمة الثابت الحقيقي هي 1 وخطأ صفر. في سياق توقع القيم المنطقية ، يحول المترجم القيم غير الصفر من Bytebool و WordBool و Longbool إلى True.
ومع ذلك ، فإن التعبيرات المنطقية والأشعة الصحيحة/الحقيقية غير متوافقة في دلفي. يقارن الجدول التالي أوجه التشابه والاختلاف بين Boolean و Bytebool/WordBool/Longbool:
منطقية
خطأ <صحيح
ORD (خطأ) = 0
ORD (صواب) = 1
Succ (false) = true
pred (صواب) = خطأ
booltostr (صواب) = -1 // هذه الوظيفة غير طبيعية للغاية
booltostr (خطأ) = 0
Bytebool ، Wordbool ، Longbool
خطأ <> صحيح
ORD (خطأ) = 0
ORD (صحيح) <> 0
Succ (false) = true
Pred (false) = true
وظيفة Booltostr هي الأكثر تفسيرًا. النموذج الأولي للوظيفة هو:
وظيفة booltoststr (ب: منطقية ؛ uSboolstrs: boolean = false): سلسلة ؛
الجدول التالي هو قواعد التحويل للوظائف:
Buseboolstrsvalue من السلسلة التي تم إرجاعها
TrueFalse'-1 '
صحيح صحيح القيمة الأولى لمجموعة TrueBoolStrs (افتراضي ، "صحيح")
خطأ كاذب '0'
خطأ خطأ في القيمة الأولى لمجموعة FalseBoolstrs (افتراضي ، "خطأ")