(100分)如何实现组件的自销毁???(100分)

  • 主题发起人 主题发起人 littlestone08
  • 开始时间 开始时间
定义一个类变量 FIsInvalid: Boolean 去判断是否有效。
然后等SendMessage让其他对象删除自己就可以了。
if NumA = NumB then
begin
FIsInvalid := True;
SendMessage(Contnr.Handle, WM_RemoveTrain, Integer(Self), 0);
end;
然后在Contnr的Message中Free,Remove等等就可以了。
 
组件自己销毁?不大可能,有时组件是需要有持久化的。。所以不能。
这个和持久化违背。

但是组件只是接口而已,接口本身可以自我销毁,通过计数器来作的。组件的销毁还是需要你要手动写代码destroy它。才可以。。。
如果不包含持久化,使用接口就完了,接口可以自动释放。。。。

你的组件如果基于IUNKOWN的话,销毁也是可行的。
 
我觉得你的TTrainList已经可以做为一个管理者的角色了,当你的TTrain对象想要干掉自己的时候,就告诉TTrainList就可以了,一切后事让TTrainList处理就可以了,何必想着自己杀自己呢。
 
使用一個工廠類
 
实现一个垃圾自动回收的类。
 
看一看《设计模式》,也许会对你设计类有些帮助。
 
这是我的第一贴,才知道结帖如此的麻烦,还得不断查看各位说的内容,然后再返回.....
如果像CSDN那样在每个回复后面都有就好了.....
不过,支持大富翁.....
 
后退
顶部