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

を使用して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;

特定の設定の詳細については、「ロケール情報定数」を参照してください。

于 2012-07-05T22:12:32.143 に答える