我意识到这个ShortDateFormat
变量代表了用户的偏好。
我还意识到,如果设置发生变化,Delphi 将ShortDateFormat
使用用户的设置自动刷新变量。
mm/dd/yy
我有一位客户希望所有“短日期”都以特定方式显示,但他们不希望他们的 Windows 偏好。
mm/dd/yyyy
ShortDateFormat
鉴于可以随时重置变量,在我的应用程序中全局更改变量的好方法是什么?
注意:包含代码格式的示例日期格式掩码以使帖子更具视觉吸引力
我意识到这个ShortDateFormat
变量代表了用户的偏好。
我还意识到,如果设置发生变化,Delphi 将ShortDateFormat
使用用户的设置自动刷新变量。
mm/dd/yy
我有一位客户希望所有“短日期”都以特定方式显示,但他们不希望他们的 Windows 偏好。
mm/dd/yyyy
ShortDateFormat
鉴于可以随时重置变量,在我的应用程序中全局更改变量的好方法是什么?
注意:包含代码格式的示例日期格式掩码以使帖子更具视觉吸引力
拥有自己的 FormatSettings 并在所有格式例程中显式使用它,而不是使用隐式版本。
它还具有线程安全的优点。
function DateTimeToStr(const DateTime: TDateTime): string;
function DateTimeToStr(const DateTime: TDateTime; const FormatSettings: TFormatSettings): string;
更新:为避免您的应用程序对语言环境更改做出反应,您可以更改Application.UpdateFormatSettings
为False
.
默认为True
in TApplication.Create
。
但请注意,这并不是对所有设置都 100% 防弹,因为某些例程会直接获取 ThreadLocale。
我同意弗朗索瓦,但我想提另一个选择:设置
Application.UpdateFormatSettings := False;
以防止在 Windows 中全局更改格式设置时自动更新它们。