一般 VCL 中事件都由一个 virtual 或 dynamic 的方法来调度,你可以在子类中 override
相应的调度方法。如 TControl 中 Click 方法调用 OnClick 事件处理过程,Click 是
OnClick 事件的调度方法。
TYourControl = class(TControl)
...
protected
procedure Click; override;
...
end;
procedure TYourControl.Click;
begin
dosomething //做一些事前处理
inherited Click; //这里会触发对 OnClick 事件处理过程的调用
dosomething //做一些事后处理
end;
...
其他如 DoMouseDown 方法调度 OnMouseDown 事件,DoMouseUp 方法调度 OnMouseUp 事件,
你都可以进行重载。另外你也可以 Override TControl.WndProc 直接根据 Windows 或自定
义消息触发你自己定义的事件。