GetLocaleInfo - 需要更多帮助 - Delphi XE5

时间:2016-09-18 21:54:41

标签: delphi

首先,我需要知道计算机上使用的测量单位,因此我可以设置常量以转换为缇(1440或567)。我已经看过"无处不在"在网上,我无法确定我是否应该使用GetLocaleInfo或GetLocaleInfoEx。有人可以解释一下这个区别。

其次,我在#34;如何阅读和更改控制面板区域和语言高级设置中的系统测量单位"的论坛上找到了答案。它显示了用于设置测量单位的代码,但是我在设置获取信息的参数时遇到了问题。任何人都可以举例说明相应的函数(GetLocaleInfo或GetLocaleInfoEx)。

1 个答案:

答案 0 :(得分:2)

var
  L: array [0..1] of Char;
begin
  Win32Check(GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_IMEASURE, @L, 2));
  if L[0] = '0' then
    // metric
  else
    // US


var
  L: array [0..1] of Char;
const
  LOCALE_NAME_SYSTEM_DEFAULT = '!x-sys-default-locale';
begin
  Win32Check(GetLocaleInfoEx(LOCALE_NAME_SYSTEM_DEFAULT, LOCALE_IMEASURE, @L, 2) <> 0);
  if L[0] = '0' then
    // metric


GetLocaleInfo接受locale identifierGetLocaleInfoEx接受locale name。它们都检索区域设置信息。据记录,对于Vista及以上版本,建议使用GetLocaleInfoEx来支持自定义区域设置。