如何得到动态创建控件的事件?(100分)

  • 主题发起人 主题发起人 fa_ya
  • 开始时间 开始时间
F

fa_ya

Unregistered / Unconfirmed
GUEST, unregistred user!
我做的程序中需动态创建控件,如edit控件,现在需获得它的onchange事件,现向各位高手
求救,火急!!!!!

 
你这样做就可以了:
YearEdit1.onChange :=YearProcedure;
 
var edit:TEdit;

edit:=TEdit.Create(self);
edit.parent := self;

edit.onchange := your function//你自己写

 
动态创建的控件就直接使用XXX.ONXXX := XXXX(过程名)就可以了,关键是因为多个空间
共用一个事件响应程序,所以必须要区分是哪个控件送过来的,一般的办法是
灵活使用SENDER参数,以及设置控件的TAG属性.
每次我使用动态创建的控件的时候,总是发现不论有多么复杂的参数,均可以在
控件的各种属性中找到地方放进去东西,如TAG,HINT, OWNER等等,很有意思.
 
我定义了一个测试process,
并用edit.onchange := processname;
但是编译出错'Parameter lists differ',可我在process并没有参数。
 
就是因为没有参数,你应该这样定义:
procedure Youredit1Click(Sender: TObject);
 
但我在创建动态控件是无法得到Sender:TObject的值,如何解决?
 
另外,如何使用SENDER参数,以及设置控件的TAG属性.
最好能有源代码。
请各位多多帮忙!thanks。
 
正如小刚说的。。
--<b>
var a:Tmenuitem;
begin
a: = Sender as Tmenuitem

end;
</b>


 
tedit(sender).text:='fdsf'
tag可放一些与该控件相关的信息
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
875
DelphiTeacher的专栏
D
后退
顶部