如果我在一个表单上实现一个接口,例如
我猜这个问题有两个部分,首先是表单是否可能意外释放(真正的问题),其次是表单如何被引用计数。
TMyForm = class(TForm, IMyInterface)
,那么当没有更多的接口引用时,对象会自动释放吗?似乎并不是这样,尽管我无法确定 TForm 是否被引用计数(如果有的话)。我担心当接口引用超出范围时,表单会被释放,但事实并非如此。我猜这个问题有两个部分,首先是表单是否可能意外释放(真正的问题),其次是表单如何被引用计数。
TComponent
会禁用自身的引用计数,但是如果有赋值给VCLCOMObject
属性,它会在该属性上执行引用计数。 - Remy LebeauTForm
类中实现),会发生什么。如果添加该接口会有什么风险,并且是否会给表单添加引用计数。 - TLamaTForm
不会为TForm
添加引用计数。编译器仍然会在接口指针上调用_AddRef()
和_Release()
,但由于TComponent
,它们将成为无操作。 - Remy Lebeau