我经常使用 C++ RAD Studio 和 Builder 6,并且经常在编写非可视代码时动态创建表单或动态创建非可视组件。在设计表单时,放置在该表单上的组件的 Owner 属性会自动设置,所以我从不担心。但是,当创建从TComponent
动态派生的任何内容时,我总是将NULL
其作为Owner
参数传递,因为我总是负责稍后释放内存。
Borland/Embarcadero 文档并没有真正涵盖在动态创建事物的情况下所需的内容(或者我可能没有在正确的地方寻找),并且似乎只涵盖了基于设计时表单的场景。
我想知道是否为动态创建的组件传递一个 NULL 所有者是正确的做法,或者它是否会导致稍后会出现的内部问题。代码可以编译并且工作正常,但我想知道它是否会导致或可能导致任何幕后问题。