如何根据区域设置获取Delphi 6程序中用于数字的字符集?

Rob*_*ler 3 delphi localization type-conversion

是否有一个Windows API调用或Delphi调用,它将告诉我Delphi 6期望由其格式转换例程(如StrToFloat())使用哪些字符集?例如,如何判断Delphi是否会看到逗号或小数点的句点?

kob*_*bik 5

不确定是否GetLocaleFormatSettings在D6中可用.(但它不在D5中).
您可以使用DecimalSeparator全局变量(SysUtils).

StrToFloat:

所述DecimalSeparator全局变量定义了必须被用作小数点的字符.字符串中不允许使用千位分隔符(ThousandSeparator)和货币符号.如果S不包含有效值,则StrToFloat会引发EConvertError异常.

DecimalSeparator由分配SysUtils单元通过在内部使用GetLocaleInfoAPI以LCTypeLOCALE_SDECIMAL,而在自动保持Forms单元响应于WM_SETTINGSCHANGE(仅GUI应用程序).


编辑:

  • GetLocaleFormatSettings 自D7起可用.
  • DecimalSeparator在较新版本的Delphi(使用FormatSettings.DecimalSeparator)中弃用.