首页 > 解决方案 > 为什么delphi BoolToStr true 表示为-1

问题描述

Delphi 函数BoolToStr将布尔值转换为字符串。

结果为真或假,或分别为“数字”、“-1”和“0”。为什么是 -1 而不是 1?

标签: delphibooleanpascal

解决方案


这些特定值的来源肯定是 COM 布尔类型使用的值0-1

当然,在旧版本的 Delphi RTL 中,在将变体从一种类型转换为另一种类型时使用了此功能,因此我有理由相信 COM 变体支持是此决定背后的原因。

您今天VariantChangeSimpleIntoSimple可以在System.VarUtils. 当被要求转换varBooleanvarOleStr它时:

VarOleStrFromStr(Dest, BoolToStr(LSource.VBoolean))

进一步阅读:


推荐阅读