【问题标题】:Do I need to free auto-created form in Delphi?我需要在 Delphi 中释放自动创建的表单吗?
【发布时间】:2020-06-23 03:38:20
【问题描述】:

我将一个表单(不是主表单)设置为项目中自动创建的。当主窗体被销毁时,我似乎不需要手动释放它。如果我这样做,那么我将收到“无效指针”错误。我没有看到任何文件提到这一点。

【问题讨论】:

  • 如果所有权链导致某个对象被销毁,则您不需要“销毁”任何拥有的对象。在您描述的情况下,所有者是被销毁的应用程序对象。但问题是,您通常可以销毁拥有的对象。也许你的代码有问题。没有minimal reproducible example,我们无法判断。

标签: forms free destroy delphi-xe3


【解决方案1】:

所有自动创建的表单对象都归TApplication 对象所有。当它自己被释放时,它会为你释放它们。但是,如果您想事先自己释放它们,那么这样做是安全的,前提是您在释放它们之后不尝试访问它们(听起来像您)。释放后,它们会将自己从TApplication 对象中移除,因此不会再次尝试释放它们。

【讨论】:

    猜你喜欢
    • 2013-06-27
    • 1970-01-01
    • 2011-07-01
    • 2014-09-23
    • 2011-03-01
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多