1

JvValidateEdit では、Value プロパティは Variant であり、float を設定または取得するときに異なる Windows 言語設定で奇妙な動作をします。デフォルトの米国設定の Windows 数値書式をカスタマイズして、小数点をカンマに、桁区切りをドットにすると、値が正しく表示されます。たとえば、1.23 の US float は "1,23" と表示されます。

ただし、Windows 言語をスペイン語に変更すると、同じ数値フォーマットが割り当てられた実数が正しく表示されなくなります。例: 1.23 の値は "123" と表示されます。

Text ( Ed.Text := FloatToStr ( 1.23 ) に文字列を割り当てると正しく表示されますが、数値にアクセスしようとすると再フォーマットされます。

コードをたどると、JvValidateEdit が実際に処理を開始する前に問題が発生しているようです。コンパイラは、バリアントに割り当てるために文字列に変換しようとしているようですが、間違っています。残念ながら、私がアセンブラーを見てから長い時間が経ちましたが、それは IBM 360 用でした。

私は XE を使用しており、違いがある場合は 32 ビット コードを生成しています。

4

0 に答える 0