代码之家  ›  专栏  ›  技术社区  ›  Steve

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

  •  5
  • Steve  · 技术社区  · 17 年前

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

    3 回复  |  直到 15 年前
        1
  •  13
  •   Nick Hodges    17 年前

    不,真的没有。但你不会后悔为真正使你的应用程序支持Unicode所做的工作。

    TNT控制装置可以很容易地用常规VCL控制装置代替。您只需使用GExperts的向导即可完成此操作( http://www.gexperts.org )它会自动将一种控制类型替换为另一种。

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

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

        2
  •  0
  •   samir105    17 年前

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

        3
  •  0
  •   Bruce McGee    17 年前

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

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

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