Delphi TJvValidateEdit、语言设置、变体和浮动问题

Delphi TJvValidateEdit、语言设置、变体和浮动问题,delphi,Delphi,在JvValidateEdit中,Value属性是一个变量,其行为 奇怪的是,在设置或 获得一个浮动。如果我为我的 默认美国设置为逗号表示小数,点表示千 然后正确显示该值。例如,美国的浮动汇率为1.23 显示为“1,23” 但是,如果我将我的Windows语言更改为西班牙语,它具有相同的 数字格式化分配的实数现在显示不正确。 例如,1.23值现在显示为“123” 如果我给文本分配了一个字符串(Ed.Text:=FloatToStr(1.23),它将 显示正确,但如果尝试访问该号码,则会重新格式化

在JvValidateEdit中,Value属性是一个变量,其行为 奇怪的是,在设置或 获得一个浮动。如果我为我的 默认美国设置为逗号表示小数,点表示千 然后正确显示该值。例如,美国的浮动汇率为1.23 显示为“1,23”

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

如果我给文本分配了一个字符串(Ed.Text:=FloatToStr(1.23),它将 显示正确,但如果尝试访问该号码,则会重新格式化

当我跟踪代码时,问题似乎在以前发生过 JvValidateEdit实际上开始处理它 尝试将其转换为字符串以将其分配给变量,但 它做错了。不幸的是,我已经很久没有这么做了 查看汇编程序,这是针对IBM360的


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

尝试将
DisplayFormat
设置为
dfDecimal
,并通过
AsFloat
属性访问值。这将在内部使用
floatostr
函数进行
EditText
值转换。谢谢,我没有注意到AsFloat本身不幸的是,它在dfDecimal、dfFloat、dfFloatFixed或DFFLOATGERNAL上没有更好的效果,但我将尝试跟踪代码,看看发生了什么,因为这消除了变量角度。您使用的是什么版本?JVCL中有一些错误;请参见,例如。Josh:最新的3.45,但这似乎确实有问题TLama:对于dfDecimal和AsFloat,它确实正确地输入,但输出仍然错误。希望上面的修复可以工作。