首先,我需要知道计算机上使用的测量单位,以便可以设置转换为缇(1440或567)的常数。我在网络上到处都是“无处不在”,无法确定应该使用GetLocaleInfo还是GetLocaleInfoEx。有人可以解释一下区别。

其次,我在“如何在控制面板区域和语言高级设置中读取和更改系统度量单位”下在此论坛上找到了答案。它显示了用于设置度量单位的代码,但是我在设置用于获取信息的参数时遇到了麻烦。任何人都可以举例说明适当的功能(GetLocaleInfo或GetLocaleInfoEx)。

最佳答案

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支持自定义语言环境。

关于delphi - GetLocaleInfo-需要更多帮助-Delphi XE5,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39563043/

10-11 21:14