Board logo

Subject: 多语言组件繁体中文的问题 [Print This Page]

Author: sz319    Time: 2006-10-27 09:26     Subject: 多语言组件繁体中文的问题

我测试的是最新 10月1号发布的,里面有个多语言的例子,我试了一下繁体中文,有的地方直接显示出BIG5在简体中文GB2312下显示的乱码样子(如:TButton,TCheckBox控件的文字),有的地方显示正常繁体(如:TLabel控件),不知是什么原因
Author: Passion    Time: 2006-10-27 15:53

这个我们也没研究出一个明确的答案。初步推想是部分Windows控件自动将繁体中文转换成了unicode,因此能正常显示。
不过这个小问题对多语包的使用没什么影响。
Author: 小雨哥    Time: 2007-5-22 01:26

涉及到系统转换。

Delphi 中,使用了 Windows 系统的活动代码页转换规则,也就是说,任何 WideString 到 String (或者反之)的转换,
一律尊从当前代码页。只要存在这种转换就存在乱码的风险。文中讲到的二个乱码控件和另一个不乱码控件的区别是:
一种是 TWinControl 控件一种是 TGraphicControl 。TWinControl 是一个由系统来构造窗口的控件,它具有 ime 特征,
并且可以获得焦点,而焦点是 Active Code 启动的关键。

测试办法很简单,只要在 TWinControl 获得焦点的时候,改变活动代码页(切换一下当前输入法)就可以看到效果(或
者大概应该先切换好代码页再让 TWinControl 获得焦点,记不清了)。

解决办法:没有什么好办法,只能改造 TWinControl 为 Unicode 窗口。




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0