3

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

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

我用过

`  shortdateformat     := 'dd/mm/yy';

`  longdateformat      := 'dd/mm/yyyy';

`  dateseparator       := '/';`
Application.UpdateFormatSettings := False;

Application.UpdateMetricSettings := false;

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

我如何在 Delphi XE 中做到这一点。?

谢谢你的帮助

4

1 回答 1

5

您可以使用GetLocaleInfo,SetLocaleInfo来获取/设置测量系统或其他与语言环境相关的设置。更改为公制的示例:

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;

有关特定设置的更多信息,请参阅“区域设置信息常量”。

于 2012-07-05T22:12:32.143 回答