中国开发网: 论坛: 程序员情感CBD: 贴子 574384
amo
我的理解是回调
TComponent的Notification是一个虚函数:

procedure Notification(AComponent: TComponent;
Operation: TOperation); virtual;

其中
TOperation = (opInsert, opRemove);

其实就是要解决一个Component插入到一个Owner或从中删除所需要完成的动作。

再看一下vcl中相关实现
procedure TComponent.InsertComponent(AComponent: TComponent);
begin
AComponent.ValidateContainer(Self);
ValidateRename(AComponent, '', AComponent.FName);
Insert(AComponent);
AComponent.SetReference(True);
if csDesigning in ComponentState then
AComponent.SetDesigning(True);
Notification(AComponent, opInsert);
end;

procedure TComponent.RemoveComponent(AComponent: TComponent);
begin
ValidateRename(AComponent, AComponent.FName, '');
Notification(AComponent, opRemove);
AComponent.SetReference(False);
Remove(AComponent);
end;

结合王中王的点评,这个问题就很容易理解了。
oooO ↘┏━┓ ↙ Oooo
( 踩)→┃你┃ ←(死 )
\ ( →┃√┃ ← ) /
  \_)↗┗━┛ ↖(_/


相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录