首先,我需要知道计算机上使用的测量单位,以便我可以设置转换为缇的常数(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/