惊天地! 泣鬼神! 我动态生成了一个控件,如何写它的事件,比如让它响应click()。不知道在哪里可以写它的事件函数,每次我自己定义函数,都通不过编译。高手指点,哭ing !!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 新建一个工程,拖一个button在窗体上,把下面的代码复制覆盖你原有的单元文件。unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } procedure ButtonClick(Sender: TObject); public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);var Button: TButton;begin Button := TButton.Create(Self); Button.Parent := Self; Button.Left := 100; Button.Top := 100; Button.Caption := '点我'; Button.OnClick := ButtonClick;end;procedure TForm1.ButtonClick(Sender: TObject);begin ShowMessage('我被点击');end;end. Dlwxn(蓝天) 你的代码是Button.OnClick := ButtonClick; 但是如过我自己定义一个函数附给Button.OnClick ,为什么会出现错误啊????这个方法可以,但是我还是想知道上面的问题怎么解决,谢谢 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); //自定义函数声明写在这 //如function a; private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.a();begin showmessage('aaa');end;然后再写Button.OnClick:=a就可以了。 注意事件类型是TNotifyEvent类型 TNotifyEvent = procedure(Sender: TObject) of object;你的方法必须是对象方法 还有一个最最重要的问题,我想得到我自己动态生成的控件的时间参数,所以自己写个函数不行, 比如 mousemove事件,我要在我自己动态生成的控件的mousemove事件中得到鼠标的坐标,那自己写函数或者把其他空间的事件复制过来也不行啊。请大家指点啊,谢谢 就直接自己定义一个procedure,然后保证参数一致,就可以对OnClick直接赋值了。 delphi+ACCESS 问题 为什么用bringtofront没反应? 困扰了几天的问题 一个关于Socket控件的问题!请帮帮忙! 关于打印临时数据库表的问题? Delphi7的弹出菜单在那里? 雪地全裸跪求:delphi2006控件添加问题 有没有办法自己释放自己, 比如一个button,当我点击button时, button 就free 掉, 不管用那种方法都可以,我现在急需解决类似的问题 问题:在delphi中怎样的到EXCEL表格的记录条数?分全给! 关于BDE的问题 对于oraacle数据库,delphi处理下面哪种做法执行效率高 用什么方法可以把文件的扩展名改变
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure ButtonClick(Sender: TObject);
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
Button: TButton;
begin
Button := TButton.Create(Self);
Button.Parent := Self;
Button.Left := 100;
Button.Top := 100;
Button.Caption := '点我';
Button.OnClick := ButtonClick;
end;procedure TForm1.ButtonClick(Sender: TObject);
begin
ShowMessage('我被点击');
end;end.
但是如过我自己定义一个函数附给Button.OnClick ,为什么会出现错误啊????这个方法可以,但是我还是想知道上面的问题怎么解决,谢谢
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
//自定义函数声明写在这
//如function a;
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.a();
begin
showmessage('aaa');
end;然后再写Button.OnClick:=a就可以了。
事件类型是TNotifyEvent类型
TNotifyEvent = procedure(Sender: TObject) of object;
你的方法必须是对象方法
比如 mousemove事件,我要在我自己动态生成的控件的mousemove事件中得到鼠标的坐标,那自己写函数或者把其他空间的事件复制过来也不行啊。请大家指点啊,谢谢