gpt4 book ai didi

delphi - Windows 7 下 Delphi 7 程序出现奇怪的区域字符/日期时间问题

转载 作者:行者123 更新时间:2023-12-03 15:26:08 25 4
gpt4 key购买 nike

我的Delphi7程序是非英语语言,并且广泛使用一些Win1250 ANSI字符。 (aáíóőű)

我注意到,在英语 Windows XP/Vista/7 系统下,许多重音字符在表单和标签标题中显示为非重音字符(即:o 代替 ő,u 代替 ű)。

在本地化的 Windows XP/Vista 系统上没有问题。但在某些 Windows 7 系统上(也许仅在 64 位版本上,我不确定)即使 Windows 实例已本地化,重音字符也无法正常显示。

我还注意到,在这些系统上 DateToStr 将输出 11/17/2010 而不是 2010.11.17 - 这是标准本地化格式。有趣的是,我在区域设置下检查了它,默认日期格式设置为 yyyy.mm.dd - 为什么 DateToStr 给我返回 dd/mm/yyyy ?

我注意到货币也有同样的行为(“,”作为小数分隔符出现,而不是“.”等)。

有什么想法吗?

谢谢!

最佳答案

I have noticed that under English language Windows XP/Vista/7 systems many accented characters appear non-accented (ie.: o instead of ő, u instead of ű) in Form and Label Captions.

Delphi 7 应用程序是非 unicode(除非您使用 TNT Components 之类的组件),因此您需要检查 Windows 中非 Unicode 应用程序的事件代码页。在Win7中,进入控制面板|地区和语言 |行政|更改系统区域设置,并更改 Windows 的默认 ANSI 代码页。

What I've also noticed is that on these systems DateToStr will output 11/17/2010 instead of 2010.11.17 - which is the standard localized format. The funny thing is that I've checked it under the regional settings, and the default date format is set to yyyy.mm.dd - why is DateToStr giving me back dd/mm/yyyy instead?

这似乎与以下报告相同: http://social.technet.microsoft.com/Forums/en-US/w7itprogeneral/thread/b4f90f07-206c-494b-8d14-ee17bfa689e0

这似乎是 Windows 中的一个错误。我在为斯洛文尼亚客户编写的一个项目中遇到了同样的问题。我告诉客户将当前日期/时间设置更改为不同的内容,保存更改,然后返回日期/时间设置,并将其更改回他想要的格式。这样就可以解决问题。

还在上面的链接中提到了一种编程解决方法:

来自 S.B.Christensen:

Hi Tim

I just had the same issu as you (also doing Delphi development).

If you wish to avoid your users to do the workaround themselves, use the following unit as the first in your project:

unit Win7;

interface

uses SysUtils, Windows;

implementation

initialization SetThreadLocale(LOCALE_USER_DEFAULT); GetFormatSettings; end.

我自己还没有测试过代码,因为之前的解决方法对我来说效果很好。

关于delphi - Windows 7 下 Delphi 7 程序出现奇怪的区域字符/日期时间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4204786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com