Delphi Interposer类中的事件分配
发布时间:2020-12-15 09:38:18 所属栏目:大数据 来源:网络整理
导读:我写了一个TEdit后代,它像这样处理OnExit事件 unit MyCustomEdit;interfaceuses Classes,StdCtrls;type TMyCustomEdit=class(TEdit) private procedure MyExit(Sender: TObject); public constructor Create(AOwner: TComponent); override; end;implementat
我写了一个TEdit后代,它像这样处理OnExit事件
unit MyCustomEdit; interface uses Classes,StdCtrls; type TMyCustomEdit=class(TEdit) private procedure MyExit(Sender: TObject); public constructor Create(AOwner: TComponent); override; end; implementation { TMyCustomEdit } uses Dialogs; constructor TMyCustomEdit.Create(AOwner: TComponent); begin inherited; OnExit:=MyExit; end; procedure TMyCustomEdit.MyExit(Sender: TObject); begin ShowMessage('Hello from TMyCustomEdit');//this is show only when is not assignated a event handler in the onexit event. end; end. 在我的应用程序的主要形式上,我正在使用Interposer类 unit UnitTest; interface uses Winapi.Windows,Winapi.Messages,System.SysUtils,System.Variants,System.Classes,Vcl.Graphics,Vcl.Controls,Vcl.Forms,Vcl.Dialogs,Vcl.StdCtrls,MyCustomEdit; type TEdit=class (TMyCustomEdit); TFormTest = class(TForm) Edit1: TEdit; Edit2: TEdit; procedure Edit1Exit(Sender: TObject); private { Private declarations } public { Public declarations } end; var FormTest: TFormTest; implementation {$R *.dfm} procedure TFormTest.Edit1Exit(Sender: TObject); begin ShowMessage('Hello from TFormTest');//this code is always executed end; end. 现在我希望当在主窗体中分配Onexit事件时,我执行了我自己的TMyCustomEdit的onexit实现以及TFormTest窗体的OnExit事件的代码.但是当我运行代码时,只执行TFormTest.OnExit事件的代码.我如何能够执行哪两个方法实现? 解决方法
覆盖
DoExit .这是在控件失去焦点时调用的方法,它触发OnExit事件.根据您的需求,在之前或之后调用继承的DoExit:
procedure TMyCustomEdit.DoExit; begin // Code here will run before the event handler of OnExit is executed inherited DoExit; // This fires the OnExit event,if assigned // Code here will run after the event handler of OnExit is executed end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |