THIDePanel = class(TPanel)private TActivatebutton: Tbutton;public constructor Create(aOwner: TComponent); overrIDe; procedure WMSize(var Msg: TWMSize); message WM_SIZE; procedure HIDeComponents;end;
该组件如何处理其TActivatebutton控件的OnClick事件?
解决方法 由于按钮是组件的私有按钮,您只需将事件处理程序附加到它,即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;endprocedure 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总结
以上是内存溢出为你收集整理的delphi – 自定义组件如何处理其子项的事件?全部内容,希望文章能够帮你解决delphi – 自定义组件如何处理其子项的事件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)