5

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

4

3 回答 3

13

不,真的没有。但是您不会后悔为真正的 Unicode 启用您的应用程序所做的工作。

TNT 控件可以很容易地替换为常规的 VCL 控件。您可以非常简单地使用 GExperts ( http://www.gexperts.org ) 中的向导来自动将一种控件类型替换为另一种控件类型。

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

顺便说一句,TNT 控件的作者 Troy Wolbrink 现在比他自己的控件更喜欢 Delphi 2009。

于 2008-11-18T23:28:00.557 回答
0

TNT Controls 的主要优点只是它可以在 Windows 9x 中作为 Ansi 程序运行。它不是完整的 unicode。如果您希望在任何地方都获得完整的 unicode 支持(例如 Stringlist.LoadFromFile、Form.OnKeyPress),最好迁移到 Delphi 2009。

于 2008-11-19T08:29:00.403 回答
0

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

我删除了 WideString 和 UTF-8 之间的来回转换,并手动将 TNT 控件替换为常规 VCL 控件,因为只有少数表格。

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

于 2008-11-19T11:26:41.837 回答