Delphi XE5和FormatSettings

bla*_*sun 2 delphi

我正在更改我的应用程序中的FormatSettings.假设计算机的本地货币设置为$,我想在我的应用程序中使用€.我可以使用以下代码更改它.

FormatSettings.CurrencyString := '€';
Run Code Online (Sandbox Code Playgroud)

但是,如果我转到区域设置并在那里进行更改,我的FormatSettings将恢复原状.我相信应该有一种方法来保证它的安全.你知道任何解决方案吗?

Dav*_*nan 6

您可以通过避免FormatSettings多年来已弃用的全局共享格式设置变量来解决此问题.

而是创建并填充类型的局部变量TFormatSettings.将其传递给依赖于格式设置的所有函数.它只是在用户进行更改时更新的全局格式设置变量.

var
  fs: TFormatSettings;
....
fs := TFormatSettings.Create;
fs.CurrencyString := '€';
Run Code Online (Sandbox Code Playgroud)

您可能更喜欢将其设置为在启动时设置的全局变量,然后永远不会修改,如果它真的永远不应该更改.

  • 不,你做了我说的话.*将其传递给所有依赖格式设置的功能.*无论何时转换,请传递您的设置. (3认同)