繁体   English   中英

将启用unicode的Delphi 2006应用程序移植到Delphi 2009

[英]Porting a unicode enabled Delphi 2006 application to Delphi 2009

我有一个在Delphi 2006中完全兼容unicode的应用程序。我用WideStrings替换了所有的AnsiStrings,用TNT控件替换了所有VCL控件,并将所有字符串函数从AnsiStrings更改为WideStrings。 看起来所有的工作都是徒劳的,因为我将不得不扭转这一切。 反正Trick Delphi 2009是否认为Widestrings实际上是UnicodeStrings?

不,确实没有。 但是,您不会后悔为您的应用程序启用真正的Unicode。

可以使用常规VCL控件轻松替换TNT控件。 你可以使用GExperts( http://www.gexperts.org )中的向导来自动替换一种控件类型。

然后,您可以将所有WideString声明更改为常规字符串。 String现在是UnicodeString的别名,因此所有字符串都可以保存Unicode数据。

BTW,TNT控制的作者Troy Wolbrink现在非常喜欢Delphi 2009而不是他自己的控件。

TNT Controls的主要优点仅在于它可以在Windows 9x中用作Ansi程序。 它不是完整的unicode。 如果你想在任何地方获得完整的unicode支持(例如Stringlist.LoadFromFile,Form.OnKeyPress),那么最好转到Delphi 2009。

我在使用不同XML文件作为输入的应用程序中做了同样的事情。 在我的情况下,我在整个程序中使用UTF-8(所以我们可以使用常规字符串),并且仅转换为WideString用于显示目的(TNT控件)。

我在WideString和UTF-8之间来回移除了转换,并且用普通的VCL控件替换了TNT控件,因为只有少数几种形式。

转换大约花了一个小时进行测试。 代码更简单,程序明显更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM