J johnrain Unregistered / Unconfirmed GUEST, unregistred user! 2002-03-06 #1 1.运行时创建的button,如何响应它的各种事件呢?比如,click事件? 2.若是运行时创建两个button,如何使第二个钮的click事件指向第一个钮的同样事件呢?
W wcwcw Unregistered / Unconfirmed GUEST, unregistred user! 2002-03-06 #5 procedure abc; begin //jfkdjafda;fd end; button1.OnClick := abc;
O onlyonekgx Unregistered / Unconfirmed GUEST, unregistred user! 2002-03-06 #6 procedure OnClickNewBtn(Sender:TObject); //自定义事件过程 procedure TForm1.OnClickNewBtn(Sender:TObject); begin 过程代码 end; 调用 Button1.OnClick:=OnClickNewBtn;
procedure OnClickNewBtn(Sender:TObject); //自定义事件过程 procedure TForm1.OnClickNewBtn(Sender:TObject); begin 过程代码 end; 调用 Button1.OnClick:=OnClickNewBtn;
Y yyhhnn Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-04 #11 自己定义的过程必须是类中的方法,不能是普通过程 所以这段代码是错的 procedure abc; begin //jfkdjafda;fd end; utton1.OnClick := abc; 改成: procedure Tform1.abc; begin //jfkdjafda;fd end; procedure Tform1.create(sender:Tobject); var button1:Tbutton; begin button1:=Tbutton.create(self);//运行时创建的按钮 button1.......//初始化按钮,只要设置button1的PARENT属性button1就可以显示了 button1.OnClick := abc; end; 这样在form1建立的时候就动态创建一个按钮,并且它的CLICK事件为abc 给分!
自己定义的过程必须是类中的方法,不能是普通过程 所以这段代码是错的 procedure abc; begin //jfkdjafda;fd end; utton1.OnClick := abc; 改成: procedure Tform1.abc; begin //jfkdjafda;fd end; procedure Tform1.create(sender:Tobject); var button1:Tbutton; begin button1:=Tbutton.create(self);//运行时创建的按钮 button1.......//初始化按钮,只要设置button1的PARENT属性button1就可以显示了 button1.OnClick := abc; end; 这样在form1建立的时候就动态创建一个按钮,并且它的CLICK事件为abc 给分!
K kundy Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-25 #12 同意yyhhnn的方法。 Object Inspector的Event页中显示的事件,只不过是对象方法指针类型的属性。因此,我们可以 在设计时动态改动一个组件的事件处理程序,或甚至在运行时建立一个新组件并将时间处理程序赋 给它。我们要在窗体类中声明该事件处理程序。对于button对象,事件处理程序abc必须是Sender: TObject才行的!因为它对应button1象的对象方法指针!要在改写Tbutton类Create方法中加入OnClick := abc; //指定事件处理程序是abc! []
同意yyhhnn的方法。 Object Inspector的Event页中显示的事件,只不过是对象方法指针类型的属性。因此,我们可以 在设计时动态改动一个组件的事件处理程序,或甚至在运行时建立一个新组件并将时间处理程序赋 给它。我们要在窗体类中声明该事件处理程序。对于button对象,事件处理程序abc必须是Sender: TObject才行的!因为它对应button1象的对象方法指针!要在改写Tbutton类Create方法中加入OnClick := abc; //指定事件处理程序是abc! []
风 风中的沙粒 Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-06 #13 但是,如果是在dll中创建的控件,上面的方法,控件响应不到,如何处理
I ifillbad Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-06 #14 procedure abc; begin //jfkdjafda;fd end; procedure Tform1.create(sender:Tobject); var button1:Tbutton; begin button1:=Tbutton.create(self);//运行时创建的按钮 button1.......//初始化按钮,只要设置button1的PARENT属性button1就可以显示了 button1([red]sender[/red]).OnClick := abc; end;
procedure abc; begin //jfkdjafda;fd end; procedure Tform1.create(sender:Tobject); var button1:Tbutton; begin button1:=Tbutton.create(self);//运行时创建的按钮 button1.......//初始化按钮,只要设置button1的PARENT属性button1就可以显示了 button1([red]sender[/red]).OnClick := abc; end;
I ifillbad Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-06 #15 procedure abc; begin //jfkdjafda;fd end; procedure Tform1.create(sender:Tobject); var button1:Tbutton; begin button1:=Tbutton.create(self);//运行时创建的按钮 button1.parent:=self; button1([red]sender[/red]).OnClick := abc; end;
procedure abc; begin //jfkdjafda;fd end; procedure Tform1.create(sender:Tobject); var button1:Tbutton; begin button1:=Tbutton.create(self);//运行时创建的按钮 button1.parent:=self; button1([red]sender[/red]).OnClick := abc; end;
风 风中的沙粒 Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-06 #16 你的方法,你根本没轼过,onclick,是个tnotify类型,只能用类方法进行赋值,另外在dll中根本不响应