我的软件依赖于 Windows 语言环境配置才能正常工作。
我的客户一直都设置了 pt-br 区域设置,并且这样可以正常工作。
在一个用户的窗口中,pt-br 语言环境设置正确,但不知何故,我的软件获取了所有 us 配置。(. 作为小数分隔符,$ 作为货币符号等等)。
我有什么办法可以在我的软件中强制全局设置语言环境吗?
我的软件依赖于 Windows 语言环境配置才能正常工作。
我的客户一直都设置了 pt-br 区域设置,并且这样可以正常工作。
在一个用户的窗口中,pt-br 语言环境设置正确,但不知何故,我的软件获取了所有 us 配置。(. 作为小数分隔符,$ 作为货币符号等等)。
我有什么办法可以在我的软件中强制全局设置语言环境吗?
遇到同样的问题,我找到了你的帖子。
我还发现了这个对我有帮助的线程(http://social.technet.microsoft.com/Forums/en-US/w7itprogeneral/thread/b4f90f07-206c-494b-8d14-ee17bfa689e0)。
这是方法:
如果您从控制面板(地球图标)/intl.cpl 中打开“区域和语言选项”,然后重新选择您的语言环境,它可能会解决问题。
1) 打开区域和语言选项
2)在“格式”下选择其他任何内容。(例如:英语(美国))。
3) 按“申请”
4) 在“格式”下选择您想要的语言环境(例如:英语(英国))。
5) 按确定。
由于您有 delphi-7,您可以执行以下操作:
Application.UpdateFormatSettings := false;
这可以防止系统使用 Windows 默认值更新您的应用程序。
然后在应用程序启动时定义:
DecimalSeparator := '.'; // Or whatever preference you have
CurrencyString := '$'; // Or something else
...
etc
在 Delphi 2006 及更高版本中,此方法已被弃用,TFormatSettings
首选使用 。如果部分应用程序在执行期间需要更改格式设置,它还可以处理重入问题。