我有一个相当大(免费)的项目编写的有德尔斐2007年其使用 TntUnicodeControlsTntLXControls 图书馆和我计划搬到德尔福2009年。

不幸的是,我使用这些图书馆无处不在我的项目:

  • 替代VCL控制,以提供Unicode能力
  • Win32API包装(大多是用于比较串)
  • 本增强功能的 TntLXForms, TntLXRegistry, ...
  • 第三方组件的使用 TntControls.(VirtualTrees,SpTBXLib,更新用于D2009可用)

你有任何经验和/或建议,在移植这样一个项目德尔斐2009年。是,最好首先开开关于(商业) TMS Unicode的控制?

有帮助吗?

解决方案

我可以帮助与一些这方面,我要移植C++应用程序生成器,使用的炸药是从2007到2009年。切换到Unicode在D2009是逾期未交,并且欢迎。然而,不幸的是,过渡是可能更容易对于那些没有所需的unicode在过去,并且可能仍然不。如果你像我一样,需要Unicode和使用特洛伊Wolbrink是伟大的TNT炸药的控制提供了它,你有一个较为复杂的工作。

好消息是,有一个新版本的TNTControls从 TM软件 它支持D2009.我还没看过这个,但预期这只是一个'外墙'层的地VCL组件,以便于携带。我会考虑,如果其他图书馆能够重建使用它。

但是,你可以更好地回到原VCL控制,原因是串的类型。TNT控制有总是使用WideString通过Unicode串回,并且你很有可能WideString使用分散的通过自己的代码。这将工作,但它是不理想,因为WideString真的应该只是用于COM互操作,因为它'包装'COM例如:类型。地unicode串D2009是基准计算,并应大大加快。

如果你决定要换TNT炸药的部件与当地VCL的,可以使用GExperts"替换元件"命令或者,也许更容易,做一个搜索和替代在你的.DFM。考绩制度文件(其中有文本形式,不要你)替换TTNT T.

其他提示

安装GExperts;没有"替换元件"IDE addin,可以帮助转换TTntXXX到TXXXX的控制。尝试一次,如果它的确定只是检查"替换evrywhere在项目"。

SpTbx和VirtualTrees只能重新编译的-他们都支持D2009.

如果你用WinAPI包装纸就叫Unicode API-s它们应该在D2009。

这让你有TntLX控制(TntLXForms,TntLXRegistry,...).由于它们不支持,也可以是很好的时间来改变他们无论如何。

我建议下列资源:

马坎的特尔斐2009年手册》第3章(移植到unicode) http://www.marcocantu.com/dh2009/

尼克*霍奇斯的文章(Delphi Unicode的世界) http://blogs.codegear.com/nickhodges/2008/11/20/39149

我觉得无论哪种方式,它将是一个很大的工作。可能更多的这样比如果你没有完成所有的工作,使它unicode兼容。我个人将忘记这tm Unicode控制,以及回到vcl。这将节省更多的痛苦的未来。(没有什么对那些控制心你.)

还记得,D2009的串的,是不一样的东西作为D2007的Widestring,你必须毫无疑问使用在你的程序。因此,所有实例Widestring,你这么努力改变从string(这是AnsiString),需要再次回到string(这是现在unicodestring).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top