由於按鈕是私有的,你可以只連接一個事件處理程序,以它的組成部分,即
THidePanel = class(TPanel)
...
private
procedure H_ActivateButtonClick(Sender: TObject);
...
end;
constructor THidePanel.Create(aOwner: TComponent);
begin
inherited;
...
FActivateButton := TButton.Create(Self);
FActivateButton.Parent := Self;
FActivateButton.OnClick:= H_ActivateButtonClick;
end
procedure THidePanel.H_ActivateButtonClick(Sender: TObject)
begin
// button is clicked!
end
如果您還需要提供一個事件的構成元素的最終用戶,那麼你需要添加一個TNotifyEvent
財產並從您的內部處理程序調用它,即
THidePanel = class(TPanel)
private
FOnActivateBtnClick: TNotifyEvent;
...
published
property OnActivateButtonClick: TNotifyEvent read FOnActivateBtnClick write FOnActivateBtnClick;
end;
procedure THidePanel.H_ActivateButtonClick(Sender: TObject)
begin
// button is clicked!
...
// fire the end user event
if(Assigned(FOnActivateBtnClick))then FOnActivateBtnClick(Self);
end
來源
2013-04-06 08:30:22
ain
也爲「最終用戶事件」添加了一個示例。 – ain 2013-04-06 08:46:54