Dan*_*ski 5 delphi porting delphi-2009 delphi-2007
我有一个用Delphi 2007编写的相当大的(免费软件)项目,该项目正在使用TntUnicodeControls
和TntLXControls
库,我打算转到Delphi 2009.
不幸的是我在我的项目中到处使用这些库:
TntLXForms
,TntLXRegistry
...TntControls
.(可提供VirtualTrees,SpTBXLib,D2009更新)您是否有任何将此类项目移植到Delphi 2009的经验和/或建议.首先切换到(商业)TMS
Unicode控件是否可取?
安装GExperts; 有"替换组件"IDE插件,可以帮助将TTntXXX转换为TXXXX控件.尝试一次,如果可以,只需选中"替换项目中的evrywhere".
SpTbx和VirtualTrees只能重新编译 - 它们都支持D2009.
如果你使用WinAPI包装器来调用Unicode API-s它们也应该在D2009中工作.
这使您无法使用TntLX控件(TntLXForms,TntLXRegistry,...).由于它们不受支持,可能现在是改变它们的好时机.
我可以在其中提供一些帮助,因为我正在移植一个从 2007 年到 2009 年使用 TNT 的 C++Builder 应用程序。在 D2009 中切换到 Unicode 是迟来的,也是值得欢迎的。然而,不幸的是,对于那些过去不需要并且现在可能仍然不需要 unicode 的人来说,转换可能会更容易。如果像我一样,您需要 Unicode 并使用 Troy Wolbrink 出色的 TNT 控件来提供它,那么您的工作就相当复杂了……
好消息是TMS Software推出了支持 D2009 的 TNTControls 新版本。我还没有看过这个,但希望它只是本机 VCL 组件上的一个“外观”层,以简化可移植性。我会考虑是否可以重建您的其他库来使用它。
然而,您可能最好回到本机 VCL 控件,原因是字符串类型。TNT 控件始终使用 WideString 来回传递 Unicode 字符串,并且您很可能在自己的代码中分散使用 WideString。这可以工作,但并不理想,因为 WideString 实际上应该仅用于 COM 互操作,因为它“包装”了 COM BSTR 类型。D2009 中的本机 unicode 字符串是引用计数的,并且应该明显更快。
如果您决定用本机 VCL 组件替换 TNT 组件,您可以使用 GExperts“替换组件”命令 - 或者,也许更简单,在 .DFM 和 .PAS 文件(您确实有文本形式的文件)中进行搜索和替换,不是吗)将 TTNT 替换为 T。
归档时间: |
|
查看次数: |
923 次 |
最近记录: |