解决 windows 7 下 Delphi 7 打开旧工程时的乱码问题 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 启动后就会自动加载我们的包了,这个包只需要一个单元 文件: 1 unit RTLFix; 2 3 interface 4 5 uses 6 Windows; 7 8 implementation 9 10 initialization 11 SetThreadLocale(LOCALE_SYSTEM_DEFAULT); 12 end. 13 包被加载时,initialization 节下的代码会自动执行,就达到了我们的目的。 当然, 我们的应用
程序里也要写上一句 SetThreadLocale(LOCALE_SYSTEM_DEFAULT), 并 且要让它尽早执行。 Delphi7 运行在 windows7 的
问题解决: 虽然在安装过程中和运行 D7 过程中会提示兼容性问题,可是忽略后即 OK。如果不行,你 可以按以下方案解决: 相信很多 delphi 爱好者因在 vista 不能正常使用 delphi7 而烦恼,甚至有些朋友说 vista 的出 现就是 delphi 的未日了。我可以明确告诉 大家,delphi7 绝对可以在 vista 下正常使用。在 Vista 上安装过 d7 的朋友都知道, 当你正常安装 d7 后, 启动 d7 时, 屏幕会出现一个对话框。 对话框的提示很明显,delphi 不能 rename 一个文件,这说明了什么?会不会是用户的权限 不够?没错,你猜对了。我现在给大家提供一个解决
方案,大 家可以参考一下。 step1,修改“C:\Program Files\Borland\Delphi7\Bin”的权限(右击上面的目录-》属性-》安全-》 编辑-》修改后确定退出) ,赋予于 users 组 modify 权限; step2,修改“C:\Program Files\Borland\Delphi7\Projects”的权限(右击上面的目录-》属性 -》安全-》编辑-》修改后确定退出) ,赋予于 users 组 modify 权限; step3,运行 d7,一切正常。 下面是在 win7 下面运行 delphi7 的画面