为什么一些Delphi组件需要“AOwner:TComponent”来构造它们?

前端之家收集整理的这篇文章主要介绍了为什么一些Delphi组件需要“AOwner:TComponent”来构造它们?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
要求TComponent作为所有者实例化某种对象似乎完全无关紧要.为什么需要这么多Delphi组件?

例如,TXMLDocument需要TComponent对象实例化.

为什么是这样,如果有一个很好的理由,我应该在那里使用什么来“做正确的事情”?

解决方法

所有者组件应该管理其所有的组件.当所有者被销毁时,所有的组件被自动销毁.

这有助于开发人员从工具调色板中拖放组件,将其放在窗体上,并将事件挂钩,以完成工作,而不用担心组件的使用寿命.

该表单是丢弃在其上的所有组件的所有者. Application对象是窗体的所有者.当应用程序关闭时,应用程序对象被破坏,从而破坏了表单和所有组件.

但是,当创建组件时,所有者并不是真正需要的.如果您将Nil传递给参数,则该组件将在没有所有者的情况下创建,在这种情况下,您将负责管理组件的生命周期.

猜你在找的Delphi相关文章