【问题标题】:Why would an application popup an error, "Control doesn't have parent window," after running for 3 weeks?为什么应用程序运行 3 周后会弹出错误“控件没有父窗口”?
【发布时间】:2012-01-16 02:47:00
【问题描述】:

我一直在 Windows 7 机器上的 Delphi XE 中运行在 Windows 7 下开发的应用程序大约 3 周不间断,但之后它停止工作并弹出一个消息框,显示“控件没有父窗口。 "在那之后,软件中似乎没有任何东西可以正常工作,除非它被关闭并重新启动。

我知道该错误的含义,但我正在尝试弄清楚。为什么?

任何提示或建议将不胜感激。谢谢。

【问题讨论】:

  • 它可能会厌倦不停地工作...... :) 让他休息一下。
  • @See-Sharp 我希望我能把你的评论当作一个笑话,但我有一个客户想要修复它。如果你愿意,我会坐在火热的座位上或枪管下:|

标签: windows delphi crash delphi-xe


【解决方案1】:

资源泄漏的迹象,最有可能是窗口句柄。使用 TaskMgr.exe 的“进程”选项卡进行诊断。查看 + 选择列并勾选句柄、用户对象和 GDI 对象。在使用程序时,请密切注意程序的值。稳定增长意味着麻烦,Windows 在 10,000 之后停止提供更多。

如果这没有帮助,那么改进您的异常处理以便获得更好的诊断,堆栈跟踪对于诊断此类问题很重要。

【讨论】:

    【解决方案2】:

    您应该安装 MadExcept、JclExcept 或其他异常处理库的副本,这些库支持在引发未捕获的异常时显示/记录调用堆栈(也就是说,如果在 IDE 调试器中运行时无法重现异常)。然后,您可以了解您的应用在发生异常时尝试执行的操作,并希望将其缩小到代码中访问缺少其父窗口的特定 UI 控件的位置。

    【讨论】:

      猜你喜欢
      • 2014-06-12
      • 2019-06-12
      • 1970-01-01
      • 2015-07-14
      • 1970-01-01
      • 2019-12-24
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      相关资源
      最近更新 更多