4

ShortDateFormat変数がユーザーの好みを表していることを認識しています。

ShortDateFormatまた、設定が変更された場合、Delphi はユーザーの設定で変数を自動的に更新することも認識しています。

mm/dd/yy

すべての「短い日付」を特定の場所に表示したい顧客がいますが、Windows の設定は望んでいません。

mm/dd/yyyy

ShortDateFormatいつでもリセットできることを考えると、私のアプリケーションでグローバルに変数を変更する良い方法は何ですか?

注:投稿をより視覚的に魅力的にするために含まれているコード形式の日付形式マスクの例

4

2 に答える 2

9

独自の FormatSettings を用意し、暗黙的なバージョンを使用する代わりに、すべてのフォーマット ルーチンで明示的に使用します。

また、スレッドセーフであるという利点もあります。

function DateTimeToStr(const DateTime: TDateTime): string;

function DateTimeToStr(const DateTime: TDateTime; const FormatSettings: TFormatSettings): string;

更新: アプリケーションがロケールの変更に反応しないようにするために、に変更できApplication.UpdateFormatSettingsますFalse
にデフォルト設定さTrueれていTApplication.Createます。
ただし、一部のルーチンは ThreadLocale を直接取得するため、これはすべての設定に対して 100% 確実ではないことに注意してください。

于 2010-06-25T19:27:06.027 に答える
8

私はフランソワに同意しますが、別のオプションについて言及したいと思います: set

Application.UpdateFormatSettings := False;

Windows でグローバルに変更されたときにフォーマット設定が自動的に更新されないようにします。

于 2010-06-25T19:35:06.767 に答える