vcl源码中Notification的作用是什么呢?下面的看不明白,谁知道的指点一下谢谢!(50分)

  • 主题发起人 主题发起人 xgwzw
  • 开始时间 开始时间
X

xgwzw

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TComponent.Notification(AComponent: TComponent;
Operation: TOperation);
var
I: Integer;
begin
if (Operation = opRemove) and (AComponent <> nil) then
RemoveFreeNotification(AComponent);
if FComponents <> nil then
begin
I := FComponents.Count - 1;
while I >= 0 do
begin
TComponent(FComponents).Notification(AComponent, Operation);//这里是递归调用吗?
Dec(I);
if I >= FComponents.Count then
I := FComponents.Count - 1;
end;
end;
end;
 
向子控件发送消息。
例如父控件销毁时,通知子控件销毁
 
不是递归调用
这句话的意思是
属主构件通知它所有的子构件:孩子们, Acomponent被销毁,你们请进行相关的处理 :)
AComponent可能即不是属主构件也不是它的子构件
 
通知消息,,当一个控件插入时,向父与子控件通知一下状态...具体请参见李维的INSIDE VCL这个书...说得太清楚.....
 
都让大家说了,我就不说了
 
嗯,好像是用了“观察者”模式。
 
以上都对,呵呵.
 
后退
顶部