当前位置:  开发笔记 > Android > 正文

为什么有些Delphi组件需要"AOwner:TComponent"来构建它们?

如何解决《为什么有些Delphi组件需要"AOwner:TComponent"来构建它们?》经验,为你挑选了2个好方法。

要求TComponent作为所有者来实例化某种对象似乎完全无关紧要.为什么有这么多Delphi组件需要这个?

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

为什么会这样,如果有充分的理由,我应该在那里使用"做正确的事"?



1> 小智..:

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

这有助于开发人员只需从工具调色板中拖出组件,将其放在表单上,​​然后连接事件即可完成工作,而无需担心管理组件的生命周期.

表单是放在其上的所有组件的所有者.Application对象是表单的所有者.当应用程序关闭时,Application对象将被销毁,从而销毁表单和所有组件.

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



2> Cesar Romero..:

所有TComponent后代都需要Owner,它在TComponent构造函数中定义.Owner组件负责销毁所有Owned组件.

如果你想控制生命时间,你可以传递nil作为参数.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有