Luk*_*Led 6 delphi encoding delphi-7 windows-7
我有一个delphi 7表单:
表格http://i44.tinypic.com/13ymott.jpg
和我的代码:
代码http://i44.tinypic.com/x1gh9c.jpg
当我在Windows 7中运行此表单时,我看到:
Windows7Form http://i41.tinypic.com/riglzl.jpg
在设计时,表单在第一个标签中有抛光字母,但在运行时没有它们.它在Vista或Windows XP上看起来不错.当我在代码中设置第二个标签的标题时,一切正常,字符被正确编码.
Windows 7顶部标签的前5个代码:65 97 69 101 83
Windows Vista/XP上顶级标签的前5个代码:165 185 202 234 140
每个系统的前5个底部标签代码:165 185 202 234 140
Windows 7改变编码,为什么?我的系统设置似乎没问题.我在控制面板中为非unicode应用程序设置了适当的语言.
编辑
此问题不仅与表单上的标签有关,还与FastReport(切换到EASTERN_CHARSET解决问题)或通过COM接口访问Microsoft Excel有关.
这个问题的答案解决了我的问题:
GetThreadLocale 返回的值与 GetUserDefaultLCID 不同吗?
一种解决方案:
我们发现奇怪的事情是,通过控制面板切换到不同的区域设置,然后切换回新西兰可以解决该问题。我很想知道相同的解决方法是否可以为您解决问题,只是为了验证我们是否看到了相同的现象。
第二:
initialization
SetThreadLocale(LOCALE_USER_DEFAULT);
GetFormatSettings;
Run Code Online (Sandbox Code Playgroud)
两种解决方案都效果很好,并且应用程序问题消失了。
| 归档时间: |
|
| 查看次数: |
10927 次 |
| 最近记录: |