Как получить набор символов, используемый для чисел в программе на Delphi 6 в зависимости от локали? - PullRequest
3 голосов
/ 28 марта 2012

Есть ли вызов API Windows или вызов Delphi, который скажет мне, какой набор символов Delphi 6 ожидает использовать числами в своих процедурах преобразования формата, таких как StrToFloat ()?Например, как я могу узнать, будет ли Delphi ожидать запятую или точку для десятичной точки?

1 Ответ

5 голосов
/ 28 марта 2012

Не уверен, что в D6 доступно GetLocaleFormatSettings. (но это не в D5).
Вы можете использовать DecimalSeparator глобальную переменную (SysUtils).

StrToFloat:

Глобальная переменная DecimalSeparator определяет символ, который должен использоваться в качестве десятичной точки. Разделители тысяч ( ThousandSeparator ) и символы валют не допускаются в строке. Если S не содержит действительного значения, StrToFloat вызывает исключение EConvertError.

DecimalSeparator назначается блоком SysUtils внутренне с использованием API GetLocaleInfo с LCType из LOCALE_SDECIMAL и поддерживается автоматически в блоке Forms в ответ на WM_SETTINGSCHANGE (только приложение с графическим интерфейсом).


Редактировать:

  • GetLocaleFormatSettings доступно с D7.
  • DecimalSeparator устарела в новой версии Delphi (используйте FormatSettings.DecimalSeparator).
...