首先,我需要知道计算机上使用的测量单位,因此我可以设置常量以转换为缇(1440或567)。我已经看过"无处不在"在网上,我无法确定我是否应该使用GetLocaleInfo或GetLocaleInfoEx。有人可以解释一下这个区别。
其次,我在#34;如何阅读和更改控制面板区域和语言高级设置中的系统测量单位"的论坛上找到了答案。它显示了用于设置测量单位的代码,但是我在设置获取信息的参数时遇到了问题。任何人都可以举例说明相应的函数(GetLocaleInfo或GetLocaleInfoEx)。
答案 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 identifier,GetLocaleInfoEx
接受locale name。它们都检索区域设置信息。据记录,对于Vista及以上版本,建议使用GetLocaleInfoEx
来支持自定义区域设置。