Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GetLocaleInfo-需要更多帮助-Delphi XE5_Delphi - Fatal编程技术网

GetLocaleInfo-需要更多帮助-Delphi XE5

GetLocaleInfo-需要更多帮助-Delphi XE5,delphi,Delphi,首先,我需要知道计算机上使用的测量单位,以便设置转换为twips(1440或567)的常数。我在网络上搜索了“无处不在”,但我很难确定是应该使用GetLocaleInfo还是GetLocaleInfo。有人能解释一下区别吗 其次,我在这个论坛的“如何在控制面板区域和语言高级设置中读取和更改系统测量单位”下找到了答案。它显示了设置测量单位的代码,但我在设置获取信息的参数时遇到了问题。任何人都可以为相应的函数(GetLocaleInfo或GetLocaleInfo)提供一个示例 var L:

首先,我需要知道计算机上使用的测量单位,以便设置转换为twips(1440或567)的常数。我在网络上搜索了“无处不在”,但我很难确定是应该使用GetLocaleInfo还是GetLocaleInfo。有人能解释一下区别吗

其次,我在这个论坛的“如何在控制面板区域和语言高级设置中读取和更改系统测量单位”下找到了答案。它显示了设置测量单位的代码,但我在设置获取信息的参数时遇到了问题。任何人都可以为相应的函数(GetLocaleInfo或GetLocaleInfo)提供一个示例


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
var
L:字符的数组[0..1];
常数
语言环境\名称\系统\默认值='!x-sys-default-locale';
开始
Win32Check(GetLocaleInfoEx(LOCALE\u NAME\u SYSTEM\u DEFAULT,LOCALE\u IMEASURE,@L,2)0);
如果L[0]=“0”,则
//公制


GetLocaleInfo
接受a,
GetLocaleInfo
接受a。它们都检索区域设置信息。如文件所述,对于Vista和更高版本,建议使用
GetLocaleInfo
来支持自定义区域设置。

到目前为止您尝试了什么?我已经尝试了这两种形式。在每种情况下,我都从许多可用的示例中计算出了区域设置和类型。然而,作为一个新手,我很难找出“lpLCData”和“cchData”中的内容,因为我看不到与结果0或1的相关性。另外,我还没有看到任何对Win32Check的引用-我认为这是为了捕获任何错误。代码工作得很好。谢谢有没有办法正式宣布问题已经解决?不客气。您可以接受答案,上下箭头附近有一个复选标记。请注意,这不是调用函数的唯一方法。关键是要找到正确的位置。一旦你知道你必须通过一个两个字符的缓冲区,你想怎么做就怎么做。Win32Check是可选的,重要的是检查错误,仅此而已。
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