2006-10-27 09:26
sz319
多语言组件繁体中文的问题
我测试的是最新 10月1号发布的,里面有个多语言的例子,我试了一下繁体中文,有的地方直接显示出BIG5在简体中文GB2312下显示的乱码样子(如:TButton,TCheckBox控件的文字),有的地方显示正常繁体(如:TLabel控件),不知是什么原因
2007-5-22 01:26
小雨哥
涉及到系统转换。
Delphi 中,使用了 Windows 系统的活动代码页转换规则,也就是说,任何 WideString 到 String (或者反之)的转换,
一律尊从当前代码页。只要存在这种转换就存在乱码的风险。文中讲到的二个乱码控件和另一个不乱码控件的区别是:
一种是 TWinControl 控件一种是 TGraphicControl 。TWinControl 是一个由系统来构造窗口的控件,它具有 ime 特征,
并且可以获得焦点,而焦点是 Active Code 启动的关键。
测试办法很简单,只要在 TWinControl 获得焦点的时候,改变活动代码页(切换一下当前输入法)就可以看到效果(或
者大概应该先切换好代码页再让 TWinControl 获得焦点,记不清了)。
解决办法:没有什么好办法,只能改造 TWinControl 为 Unicode 窗口。