TComponent的FreeNotification方法是怎么实现的,代码怎么看不懂呢?:)(80分)

  • 主题发起人 主题发起人 everhappy
  • 开始时间 开始时间
E

everhappy

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TComponent.FreeNotification(AComponent: TComponent);
begin
if (Owner = nil) or (AComponent.Owner <> Owner) then
begin
// Never acquire a reference to a component that is being deleted.
assert(not (csDestroying in (ComponentState + AComponent.ComponentState)), 'Component already destroyed: '+ Name);
if not Assigned(FFreeNotifies) then FFreeNotifies := TList.Create;
if FFreeNotifies.IndexOf(AComponent) < 0 then
begin
FFreeNotifies.Add(AComponent);
AComponent.FreeNotification(Self);//这是不是出现循环调用吗?
end;
end;
Include(FComponentState, csFreeNotification);
end;
该函数的功能就是把要通知的对象放在FFreeNotifies中,自已删除了就要通知子组件删除,但是添加了也有必要通知别人吗?有什么实际意义?
 
这就叫广播模式,多看看就知道了
 
李维书中的吧,我也看到这里,现在忙得没时间看啊!
忙着看<<神雕>>!
 
应该是观察者模式.
李维书中讲的也不太清楚啊:)
 
问题是不是太简单了
自己顶一下!
 
多人接受答案了。
 

Similar threads

后退
顶部