delphi - GetLocaleInfo - 需要更多帮助 - Delphi XE5

标签 delphi

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

相关文章:

从 Delphi 调用 SHGetSetSettings

database - Delphi + SQLite + DB Express select 参数错误

delphi - 用delphi编写客户端-服务器应用程序

delphi - 使用 Indy 9 发送带有嵌入图片的电子邮件

delphi - 如何使用 FireMonkey 跨平台应用程序使用默认浏览器打开 URL?

delphi - 我可以生成自定义编译器错误吗?如果是这样,怎么办?

mysql - Delphi连接在线sql数据库

Delphi OAuth 身份验证

delphi - 为什么TForm的_release不调用析构函数?

delphi - 如何拥有没有单元别名的 Delphi XE2 项目?