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

时间:2008-11-18 22:49:51

标签: delphi unicode delphi-2009

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

3 个答案:

答案 0 :(得分:13)

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

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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