Object Pascal中提供了4个预定义布尔类型:BooleanByteBoolWordBoolLongBool。其中,Boolean是首选类型,其他布尔类型是为了向其他语言和操作系统提供兼容。
    Boolean变量占用一个字节的内存,ByteBool变量也占用一个字节,WordBool变量占用两个字节(一个字),LongBool变量占用四个字节(双字)。
    布尔值用预定义常量TrueFalse表示。下面是各种布尔类型中值的关系:

    Boolean ByteBool, WordBool, LongBool
    False < True False <> True
    Ord(False) = 0 Ord(False) = 0
    Ord(True) = 1 Ord(True) <> 0
    Succ(False) = True Succ(False) = True
    Pred(True) = False Pred(False) = True

    对于ByteBoolLongBoolWordBool类型,当值的序号非零时,值被认为是True。如果这样的一个值出现在需要Boolean类型的上下文中,编译器将自动将所有序号非零的值转换成True
    上面的说明是指布尔值的序号而不是指布尔值。在Object Pascal中,布尔表达式不能被等同为整数或实数。因此,如果 X 是一个整数类型的变量,那么语句
    if X then …;
    将产生一个编译错误。转换变量到布尔类型是不可靠的,但可以通过下面的语句来达到相同的目的:

    if X <> 0 then …; { 使用长的表达式返回布尔值 }
    var OK: Boolean { 使用布尔变量 }

    if X <> 0 then OK := True;
    if OK then …;