2012-07-05 56 views
3

我正在使用Delphi XE,我編寫了一個應用程序,與我的客戶在日本編寫的另一個應用程序一起運行,問題是日文軟件(測量機)不是最好的用戶界面設計,並且在啓動應用程序之前必須更改機器區域高級測量設置,以選擇公制或英制測量單位。如何讀取和更改控制面板區域和語言高級設置中的系統度量單位

我想知道如果我可以通過翻轉這個系統設置來幫助用戶,並從我的應用程序啓動日本應用程序,我沒有問題啓動日本應用程序,只是如何閱讀和更改測量設置。

我已經使用

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

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

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

Application.UpdateMetricSettings:= FALSE;

很多時候在我的應用程序中玩我的應用程序啓動時的本地系統快照,但現在我需要更改實際的實時系統值。我一直在delphi的幫助和微軟的MSDN庫文檔上下,但只是無法找到任何有關度量單位以及如何訪問它們。

我該如何在Delphi XE中做到這一點。 ?

感謝您的幫助

+0

'SetLocaleInfo'與LOCALE_IMEASURE,LOCALE_SSHORTDATE,LOCALE_SLONGDATE等..? – 2012-07-05 22:00:12

+0

Brilliant..anychance你可能可以告訴我將LOCALE_IMEASURE設置爲公制的結構? – user1503844 2012-07-05 22:06:13

回答

5

您可以使用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; 

有關特定設置的更多信息,請參閱「Locale Information Constants」。

+0

非常感謝我明天會試試這個,23:20 ...我離開家。 – user1503844 2012-07-05 22:19:40

+0

@user - 它是如何去的? – 2012-07-10 18:45:50

相關問題