要求TComponent作为所有者实例化某种对象似乎完全无关紧要.为什么需要这么多Delphi组件?
例如,TXMLDocument需要TComponent对象实例化.
为什么是这样,如果有一个很好的理由,我应该在那里使用什么来“做正确的事情”?
所有者组件应该管理其所有的组件.当所有者被销毁时,所有的组件被
自动销毁.
这有助于开发人员从工具调色板中拖放组件,将其放在窗体上,并将事件挂钩,以完成工作,而不用担心组件的使用寿命.
该表单是丢弃在其上的所有组件的所有者. Application对象是窗体的所有者.当应用程序关闭时,应用程序对象被破坏,从而破坏了表单和所有组件.
但是,当创建组件时,所有者并不是真正需要的.如果您将Nil传递给参数,则该组件将在没有所有者的情况下创建,在这种情况下,您将负责管理组件的生命周期.