如何在控制面板区域和语言高级设置中读取和更改系统测量单位



我正在使用Delphi XE,我编写了一个应用程序,该应用程序与我在日本的客户编写的另一个应用程序一起运行,问题是日本软件(测量机)不是最好的用户界面设计,并且在启动应用程序以选择公制或英制测量单位之前,必须更改机器区域高级测量设置。

想知道我是否可以通过为他们翻转此系统设置并从我的应用程序启动日语应用程序来帮助用户,我启动日语应用程序没有问题,只是如何阅读和更改测量设置。

我用过

`  shortdateformat     := 'dd/mm/yy';
`  longdateformat      := 'dd/mm/yyyy';
`  dateseparator       := '/';`
Application.UpdateFormatSettings := False;

Application.UpdateMetricSettings := false;

在我的

应用程序中,很多时候在我的应用程序启动时使用本地系统快照,但现在我需要更改实际的实时系统值。我一直在 delphi 帮助和 MSDN 库文档中上下Microsoft,但找不到与测量单位以及如何访问它们相关的任何内容。

如何在德尔福XE中做到这一点。

感谢您的帮助

您可以使用

GetLocaleInfoSetLocaleInfo来获取/设置测量系统或其他与区域设置相关的设置。更改为公制的示例:

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  LocaleID: LCID;
begin
  LocaleID := GetUserDefaultLCID;
  SetLocaleInfo(LocaleID, LOCALE_IMEASURE, '0'); // '1' for US system
  SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
end;

有关特定设置的详细信息,请参阅"区域设置信息常量"。

最新更新