1. 既然你自己做的控件, 有必要用事件方式实现某项功能吗? 完全可以override产生
事件的那个方法嘛
2. 如果一定要这么做也简单, 不过有一点技巧, 用个变量保存原事件. 然后将其替换成
你的事件方法, 在你的时间方法里调用原事件就可以了. 例如
TTest = class(TPanel)
private
FOldOnClickEvent: TNotifyEvent;
protected
procedure Loaded; override;
procedure MyOnClickEvent(Sender: TObject);
public
constructor Create(AOwner: TComponent); override;
end;
procedure TTest.Create(AOwner: TComponent);
begin
inherited;
OnClick := MyOnClickEvent;
FOldOnClickEvent := nil;
end;
procedure TTest.Loaded;
begin
Inherited;
FOldClickEvent := OnClick;
OnClick := MyOnClickEvent;
end;
procedure TTest.MyOnClickEvent(Sender: TObject);
begin
if Assigned(FOldClickEvent) then
FOldClickEvent(Sender);
....... // 你的事件处理代码
end;