帮助解决奇怪的 Delphi 5 IDE 问题
Posted
技术标签:
【中文标题】帮助解决奇怪的 Delphi 5 IDE 问题【英文标题】:Help with strange Delphi 5 IDE problems 【发布时间】:2009-11-13 17:20:34 【问题描述】:好吧,我要疯了。在过去(几乎)四年里,我一直在忍受我的 Delphi 5 IDE 中的一些极其糟糕的行为。问题包括:
coride50.bpl 中看似随机的错误 编译时出现浮点错误 偶尔删除我的源代码文件 表单和对象大小在处理它们的实例之间变化 编译时文件之间的链接丢失:即使明确引用了函数也找不到函数的消息 链接器经常无法包含有效的 .DFM 文件,除非执行完整构建而不是较小的编译最大的问题是我的老板不相信如果没有任何用户更改会导致这些问题出现,就会发生这种情况。我已经擦了几次并重新加载了 Delphi,但这不是我现在可以再做的事情。列出的大多数问题都可以轻松恢复(重新加载 IDE 或从源代码控制重新复制文件),但这完全是疯了。我已经消除了编译时的所有警告和提示,并没有掩盖它们。我已尽力遵循Marco 和Microsoft 的最佳实践。这只是我吗?我是那个疯子吗?我怎样才能阻止 Delphi 不再引起这些头痛?
【问题讨论】:
如果您已经读到这里,感谢您聆听我的咆哮。 刚刚想到:在我来到这里之前,这台机器有(仍然有)两个 Delphi IDE:5 和 7。想知道 7 中的某些东西是否会干扰 5? 我在 Windows 7 下安装了 Delphi 5,它运行得非常好,除了偶尔 ddevextensions 在我关闭 IDE 时会出现一两个错误。 我认为构建问题在 Delphi 6 中大部分得到解决,然后在 Delphi 2007 中完全解决。Delphi 7 在您的系统上表现如何? D7 传统上在系统上运行良好。不过,我们只将它用于一个项目,并且在大约 18 个月内不需要进入它。 【参考方案1】:很确定这是一个坏包。如果您可以提出反复失败的步骤(我知道这很困难),那么请尝试一次删除第 3 方(或自制)包 1,直到它被修复。那你至少知道我们是哪个包造成了麻烦。
一旦您知道麻烦的包是什么,您就可以在 Delphi 中实际调试组件的设计时代码和行为。只需将 Delphi exe 设置为调试应用程序,然后 Delphi 将在调试模式下启动另一个 Delphi 实例。重现导致失败的步骤,希望您能很好地了解包中的哪些代码导致了问题。
祝你好运!
【讨论】:
虽然这对我来说是正常的操作程序,但我认为在这种情况下是不可能的。我们有太多的包被我们的应用程序使用。我一直在减少所需的包和控件的数量,但我们仍然有很多来自以前的开发人员的东西,只是安装了任何可行的东西,而没有计划好。【参考方案2】:我从未见过任何版本的 Delphi 在任何情况下都删除文件。
您是否安装了任何 IDE 插件?这是我的第一个猜测。
【讨论】:
安装了两个插件,都是在大多数问题开始之后出现的。不过,可能有人要对这些删除负责。 它们是什么?可能存在某人认识到的已知问题。无论如何,我会尝试卸载它们并查看它是否有任何影响。 GExperts 和 SourceConneXion。已经删除了 SourceConneXion,现在正在查看。 到目前为止,删除 Source ConneXion 似乎有很大帮助,但并没有完全解决问题,只是减少了很多。会尽我所能保持更新。【参考方案3】:我以前从未听说过 Delphi 有这样的行为。有几点需要注意:
你确定你机器上的内存是好的吗?你在上面运行过 Memtest 吗?最近几次我遇到了一台机器的疯狂行为,原来罪魁祸首是内存。
除此之外,请记住,您安装到 Delphi 中的任何东西都在 IDE 的上下文中运行,如果它有问题,它可能会弄乱 IDE。即使是写入野指针的组件也可以对您执行此操作。
【讨论】:
野生组件很容易成为一个因素。我们有两套比我早的一套,根据我的经验,这两套都不是很可靠。只使用它们是因为我们无法在不破坏大量工作的情况下升级一个,而另一个自 2004 年以来就没有更新。 内存测试运行。内存干净了。 那么几乎可以肯定你有一个坏组件。任何设计时编辑器都在 IDE 上下文中运行,并且非常有能力将其丢弃。【参考方案4】:我用了 d5 很长 时间,从未见过。我还有其他一些奇怪的事情,比如你提到的需要构建而不是编译。我在 d2009 也有。
【讨论】:
【参考方案5】:只是一个想法;我建议您挑选一个关于您安装了 D5 和 D7 的 cmets;
卸载 D7 卸载 D5
重新安装 D5 安装 D5 第 3 方组件 服务包 D5 重新安装 D7 安装 D7 第 3 方组件 服务包 D7
然后再试一次,完成删除您自己项目目录中所有 .DCU 的技巧。
根据我的经验,我一直很小心地坚持“按数字顺序”安装它们,如果需要删除它们,我通常会在开始重新安装之前将它们全部删除。
【讨论】:
过去已经这样做了。我们不再需要 D7,唯一的用途是我们现在可以在 Visual Studio 中重新制作的办公插件。我知道我应该删除 D7,但我可能会摆脱这台旧(7 年)机器并获得更新的东西。不过还不确定。【参考方案6】:GExperts ToDo 列表窗口...关闭它或任何其他 GExperts 窗口。观察任务管理器的内存增加,然后在关闭任何窗口后停止。
【讨论】:
【参考方案7】:这些天几乎没有 Delphi 5.0。但我确实记得由于各种原因,拥有最新版本很重要。你有吗??去帮助->关于。我相信这是最新版本: 版本 5.0(内部版本 6.18)更新包 1
【讨论】:
【参考方案8】:您使用的是哪个操作系统?如果是 Windows 7,可能与 Delphi 5 不兼容,因为它现在有点长。也许您可以尝试在 XP VM 中运行 Delphi 5。
【讨论】:
【参考方案9】:既然您对 Delphi 7 没有任何问题,有什么理由不将此应用程序迁移到 Delphi 7 吗?做起来应该不难,除非你有一些没有来源的第三方组件。
【讨论】:
很多第三方组件,只有一个 delphi 7 许可证(我们目前有两个开发人员),为了让我们的一些组件正常工作,我们必须购买新版本或寻找替代品。以上是关于帮助解决奇怪的 Delphi 5 IDE 问题的主要内容,如果未能解决你的问题,请参考以下文章
Delphi XE8 Printe VCL和DocumentProperties奇怪的问题
Delphi的MDI编程中遇到的一个奇怪问题(值得研究的一个问题)
Delphi IDE Menu integration - INTAServices