首先,我需要知道计算机上使用的测量单位,以便可以设置转换为缇(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 identifier,GetLocaleInfoEx
接受locale name。它们都检索语言环境信息。如前所述,对于Vista及更高版本,建议使用GetLocaleInfoEx
支持自定义语言环境。关于delphi - GetLocaleInfo-需要更多帮助-Delphi XE5,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39563043/