我有一个在Delphi 2006中完全兼容unicode的应用程序。我用WideStrings替换了所有的AnsiStrings,用TNT控件替换了所有VCL控件,并将所有字符串函数从AnsiStrings更改为WideStrings。看起来所有的工作都是徒劳的,因为我将不得不扭转这一切。反正Trick Delphi 2009是否认为Widestrings实际上是UnicodeStrings?
答案 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控件,因为只有少数几种形式。
转换大约花了一个小时进行测试。代码更简单,程序明显更快。