• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

解决在Windos7下Delphi应用程序乱码问题

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1,直接将英文的win7改成中文,步骤如下:

—— 开始 
—— Control Panel 
—— Change display language 
—— 选择 Formats 选项卡 
—— Format 选择 Chinese (Simplified, PRC) 
—— 选择 Location 选项卡 
—— 选择 China 
—— 选择 Administrative 选项卡 
—— 在 Language for non-Unicode programs 下 Change system locale... 为 Chinese (Simplified, PRC) 
—— Restart
 
2,这个是转载别人的
http://hi.baidu.com/523399/blog/item/5d422c7ad8dc6be52e73b3af.html
Windows 7不错,Delphi 7也不错,不过两者合作不怎么协调。用Delphi 7打开旧工程,窗体上的中文全部成了乱码,这是由于Delphi 7将dfm文件中的unicode字符串转换成AnsiString时选择了错误的代码页,本来应该选择936代码页,却错误选择了1252。其实这也算是Windows 7 Beta版本的BUG吧?控制面板里已经把system locale设置成了Chinese PRC,但是系统运行的线程的locale还被windows初始化为1033,而locale 1033的代码也就是1252。Delphi 7放着system locale不用要去用线程各自的locale,也够笨的了。所以我们解决的办法就是改变线程的locale,这可以用SetThreadLocale这个API来解决。写一个bpl包安装到Delphi IDE中,IDE启动后就会自动加载我们的包了,这个包只需要一个单元文件:

unit RTLFix;

interface

uses
   Windows;
  
implementation

10 initialization
11 
   SetThreadLocale(LOCALE_SYSTEM_DEFAULT);
12 end
.
13

包被加载时,initialization节下的代码会自动执行,就达到了我们的目的。
当然,我们的应用程序里也要写上一句SetThreadLocale(LOCALE_SYSTEM_DEFAULT),并且要让它尽早执行。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab学习笔记1--matlab工作界面发布时间:2022-07-18
下一篇:
基于MATLAB 2014a GUI界面的实时目标跟踪的实现发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap