茶壶:
除了自己通知OwnedList或者设置相应的记录器,没什么好方法。
[阅读: 296] 2006-09-24 22:10:52
大体上,这类问题的产生源自Delphi的编译器。
在以前的编译器中,还得自己实现FreeAndNil。
下面的语句有对话框弹出来。
AObject.Free;//要改成FreeAndNil(AObject)
if Assigned(AObject) then ShowMessage('Not Nil');
事实上,TObjectList的所包含的对象,建议创建时使用Create(True),移除时直接Remove(Indexof(AObject)),它会自释放的。
如果不得不检测是否在外部被释放,那还不如直接用TList并创建自己的通知机制。