delphi – 自定义组件如何处理其子项的事件?

delphi – 自定义组件如何处理其子项的事件?,第1张

概述我正在设计一个面板后代组件,它上面有一个按钮控件: THidePanel = class(TPanel)private TActivateButton: TButton;public constructor Create(aOwner: TComponent); override; procedure WMSize(var Msg: TWMSize); message WM_SIZ 我正在设计一个面板后代组件,它上面有一个按钮控件:

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 – 自定义组件如何处理其子项的事件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1266752.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存