1

在 JvValidateEdit 中,Value 属性是一个 Variant,它在设置或获取浮点数时在不同的 Windows 语言设置下表现异常。如果我将默认美国设置的 Windows 数字格式自定义为小数点的逗号和千位分隔符的点,则该值将正确显示。例如,美国浮动 1.23 显示为“1,23”。

但是,如果我将 Windows 语言更改为具有相同数字格式的西班牙语,则分配的实数现在显示不正确。例如,1.23 值现在显示为“123”。

如果我为 Text ( Ed.Text := FloatToStr ( 1.23 ) 分配一个字符串,它会正确显示,但如果您尝试访问该数字,它会被重新格式化。

当我跟踪代码时,问题似乎发生在 JvValidateEdit 实际开始处理它之前。看来编译器正在尝试将其转换为字符串以将其分配给变体,但它做错了。不幸的是,我已经有很长时间没有看过汇编程序了,那是针对 IBM 360 的。

如果有区别,我正在使用 XE 并生成 32 位代码。

4

0 回答 0