自定义事件 例如 : produce MyClick (Sender : TObject); produce Button1.Click(Sender : TObject); produce MyClick(Sender : TObject); begin ShowMessage(TComponent(Sender).Name); end;produce Button1.Click(Sender : TObject); var But : TButton; begin But := TButton.Create(self); But.Captiong := '确定'; But.OnClick := MyClick; //这句就是 end;随手写的没调试过不过应该没什么问题
我的理解应该是这样: procedure TMainForm.Button1Click(Sender: TObject); begin ShowMessage('Button1.OnClick event occurs!'); end;procedure TMainForm.Button2Click(Sender: TObject); begin Button1Click(Button1); end;
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Panel1: TPanel; procedure Button1Click(Sender: TObject); procedure btnclick(sender:tobject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); var i:integer; j:integer; btn:array of tbutton; begin setlength(btn,100); j:=0; for i:=0 to 16 do begin if (i=(5*j)+5) and (i<>0) then j:=j+1; btn[i]:=tbutton.Create(self); btn[i].Caption :='button' +inttostr(i); btn[i].Width:=50; btn[i].Height:=50; btn[i].Top:=j*(btn[i].Height+10) ; btn[i].Left:= (i-5*j)*btn[i].Width+10; btn[i].Parent:=self.Panel1 ; btn[i].OnClick:=btnclick; end; end; procedure tform1.btnclick(sender:tobject); var a:string; begin a:= tbutton(sender).Caption ; application.MessageBox(pchar(a),'提示!'); end;end.
例如 :
produce MyClick (Sender : TObject);
produce Button1.Click(Sender : TObject);
produce MyClick(Sender : TObject);
begin
ShowMessage(TComponent(Sender).Name);
end;produce Button1.Click(Sender : TObject);
var
But : TButton;
begin
But := TButton.Create(self);
But.Captiong := '确定';
But.OnClick := MyClick; //这句就是
end;随手写的没调试过不过应该没什么问题
procedure TMainForm.Button1Click(Sender: TObject);
begin
ShowMessage('Button1.OnClick event occurs!');
end;procedure TMainForm.Button2Click(Sender: TObject);
begin
Button1Click(Button1);
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
procedure Button1Click(Sender: TObject);
procedure btnclick(sender:tobject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
j:integer;
btn:array of tbutton;
begin
setlength(btn,100);
j:=0;
for i:=0 to 16 do
begin
if (i=(5*j)+5) and (i<>0) then j:=j+1;
btn[i]:=tbutton.Create(self);
btn[i].Caption :='button' +inttostr(i);
btn[i].Width:=50;
btn[i].Height:=50;
btn[i].Top:=j*(btn[i].Height+10) ;
btn[i].Left:= (i-5*j)*btn[i].Width+10;
btn[i].Parent:=self.Panel1 ;
btn[i].OnClick:=btnclick;
end;
end;
procedure tform1.btnclick(sender:tobject);
var
a:string;
begin
a:= tbutton(sender).Caption ;
application.MessageBox(pchar(a),'提示!');
end;end.