我开发了一个使用第三方组件的应用程序(在D7,WinXP上开发)。 当我在XP上部署这个应用程序时,一切正常。当我在Vista上运行它时,应用程序停止正常工作:
当我打开/关闭可见性时,工具栏上的工具按钮的大小不一致,这就是为什么(第三方)皮肤没有正确嵌套然后看起来很难看。它很烦人,这很烦人,但下一点并不致命。
第三方文本处理组件停止写入。我写了一些例程,允许在某些情况下写这个组件。我发现,我无法写任何东西(可能这些例程在写作时会返回false,但是我没有看到任何理由,为什么在XP上应该可以正常工作,但在Vista上不行)。
应用程序运行(最后),但不是像预期的那样!!!!
我想调试它,但是怎么样?
注意: 当我在Win98上运行相同的应用程序时,我收到有关无效浮点运算的错误消息...
有人解决了这个问题吗?
由于
答案 0 :(得分:5)
如果Delphi 7与Windows Vista兼容,它实际上只意味着以下一种或两种:
不自动表示
让我给你一个类比:你可以用锤子钉在墙上而不伤害自己并不意味着无论你做什么,你都不会伤到自己。
如果您的程序在您自己的代码中或作为您使用的第三方组件的一部分,请使用已更改或甚至可能已删除的Windows部分(尽管这样做要少得多),那么您需要修复程序,没有办法解决它。
也没有银弹,所以没有编译器指令或诸如此类的东西。我能想到的最多的可能是,Windows Vista可能会为快捷方式提供一些兼容性设置,这些设置可能会启动Vista中的某些XP兼容层,以解决您遇到的特定问题。
然而,唯一的长期解决方案是更改您的程序,使其与Windows Vista以及Windows 7正确兼容。
既然您说您正在使用第三方组件,那么您是否已验证您使用的特定版本是否与Vista兼容?您需要检查作者的网站才能找到它。也许只需升级这些组件就可以解决这个问题。
但是,您可能还需要对自己的代码进行更改。
前进的最佳方法是安装Vista和可能的Windows 7并开始调试以尝试找出问题的根本原因。
请注意,只在Vista上安装Delphi 7并重新编译不会修复任何问题。如果在特定的Windows版本上编译它,编译器不会生成不同的程序。只有对代码的更改才会应用必要的更改。
答案 1 :(得分:1)
最简单的解决方案是确保您的Delphi版本和第三方组件与Vista兼容。
自2007年以来的Delphi版本。 最近的TMS,DevExpress和Raize组件都是。
硬解决方案是自己做所有的改变。 准备好修改2002年的VCL源代码,仔细修改它们以使它们达到Delphi 2007级别。 然后对第三方组件执行相同的操作。
- 的Jeroen
答案 2 :(得分:0)
我从未真正调查过,但我注意到在某些应用程序中,在所有皮肤模式(XP-teletubbie和Vista / W7非经典)中,如果我直接放置按钮和标签,我会使用所有delphi版本绘制工件在tframes或ttabsheets上。
当我在中间插入一个面板时,问题就消失了。