CnPack Forum


 
Subject: 多语言组件繁体中文的问题
sz319
新警察
Rank: 1



UID 3045
Digest Posts 0
Credits 9
Posts 4
点点分 9
Reading Access 10
Registered 2006-10-27
Location 湖南
Status Offline
Post at 2006-10-27 09:26  Profile | Blog | P.M.  | QQ
多语言组件繁体中文的问题

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


UID 359
Digest Posts 19
Credits 6838
Posts 3591
点点分 6838
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2006-10-27 15:53  Profile | Blog | P.M. 
这个我们也没研究出一个明确的答案。初步推想是部分Windows控件自动将繁体中文转换成了unicode,因此能正常显示。
不过这个小问题对多语包的使用没什么影响。
Top
小雨哥
新警察
Rank: 1



UID 14540
Digest Posts 0
Credits 14
Posts 7
点点分 14
Reading Access 10
Registered 2007-5-19
Location 浙江杭州
Status Offline
Post at 2007-5-22 01:26  Profile | Blog | P.M.  | QQ
涉及到系统转换。

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

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

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




All times are GMT++8, the time now is 2024-11-22 13:26

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.008654 second(s), 9 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP