delphi - 在应用程序启动时覆盖区域设置

标签 delphi delphi-10.2-tokyo

我想通过 FormatSettings 全局变量强制我的应用程序始终使用西类牙语区域设置,但应用程序会忽略这些设置。你知道我错过了什么吗?

program TestProject;

uses
  Vcl.Forms,
  SysUtils,
  Rutinas in 'Rutinas.pas',
  Conexion in 'Conexion.pas' {dmConexion: TDataModule},
  MainForm in 'MainForm.pas' {frmMainForm};

{$R *.res}

begin
  Application.Initialize;

  FormatSettings := TFormatSettings.Create('es-ES');

  Application.MainFormOnTaskbar := True;
  Application.Title := Application_Name;
  Application.CreateForm(TdmConexion, dmConexion);
  Application.CreateForm(TfrmMainForm, frmMainForm);
  Application.Run;
end.

谢谢。

PS:我知道不建议使用 FormatSettings,因为它不是线程安全的,但在这里它不应该成为问题,因为我只在应用程序启动时更改它一次,任何其他时候我需要使用自定义转换本地 TFormatSettings 变量。

最佳答案

抱歉,问题不在于 Delphi,而在于我用来呈现数据的 DevExpress 控件。

DevExpress 使用自己的格式设置:https://www.devexpress.com/Support/Center/Question/Details/A517/how-to-use-custom-formats-for-editors

现在可以正常工作了:

program TestProject;

uses
  Vcl.Forms,
  SysUtils,
  cxFormats,
  Rutinas in 'Rutinas.pas',
  Conexion in 'Conexion.pas' {dmConexion: TDataModule},
  MainForm in 'MainForm.pas' {frmMainForm};

{$R *.res}

begin
  Application.Initialize;

  FormatSettings := TFormatSettings.Create('es-ES');
  Application.UpdateFormatSettings := False;
  cxFormatController.BeginUpdate;
  cxFormatController.UseDelphiDateTimeFormats := True;
  cxFormatController.EndUpdate;
  cxFormatController.GetFormats;
  cxFormatController.NotifyListeners;

  Application.MainFormOnTaskbar := True;
  Application.Title := Application_Name;
  Application.CreateForm(TdmConexion, dmConexion);
  Application.CreateForm(TfrmMainForm, frmMainForm);
  Application.Run;
end.

关于delphi - 在应用程序启动时覆盖区域设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58094273/

相关文章:

arrays - Delphi 7 中使用 JSON 进行数组处理

delphi - 匿名方法的 TypeInfo 的奇怪行为

delphi - 使用嵌入式 Firebird 时删除表失败并显示 'unsuccessful metadata update'

delphi - DynArraySize() 仅能正确运行最多 649 个整数元素的数组

delphi - 如何将 Delphi.NET 项目转换为 Delphi Prism?

sql-server - 无法将空字符串传递到非空数据库字段

multithreading - 帖子线程消息 : Create a message queue

windows - 以编程方式向目录添加具有写入权限的 IIS_IUSRS

delphi - 如何以编程方式更改 TWebBrowser 中的字体

delphi - 使用 Delphi 获取真实硬盘序列号