F fa_ya Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-06 #1 我做的程序中需动态创建控件,如edit控件,现在需获得它的onchange事件,现向各位高手 求救,火急!!!!!
小 小刚 Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-06 #2 你这样做就可以了: YearEdit1.onChange :=YearProcedure;
H hustmouse Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-06 #3 var edit:TEdit; edit:=TEdit.Create(self); edit.parent := self; edit.onchange := your function//你自己写
D Dick Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-06 #4 动态创建的控件就直接使用XXX.ONXXX := XXXX(过程名)就可以了,关键是因为多个空间 共用一个事件响应程序,所以必须要区分是哪个控件送过来的,一般的办法是 灵活使用SENDER参数,以及设置控件的TAG属性. 每次我使用动态创建的控件的时候,总是发现不论有多么复杂的参数,均可以在 控件的各种属性中找到地方放进去东西,如TAG,HINT, OWNER等等,很有意思.
动态创建的控件就直接使用XXX.ONXXX := XXXX(过程名)就可以了,关键是因为多个空间 共用一个事件响应程序,所以必须要区分是哪个控件送过来的,一般的办法是 灵活使用SENDER参数,以及设置控件的TAG属性. 每次我使用动态创建的控件的时候,总是发现不论有多么复杂的参数,均可以在 控件的各种属性中找到地方放进去东西,如TAG,HINT, OWNER等等,很有意思.
F fa_ya Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-06 #5 我定义了一个测试process, 并用edit.onchange := processname; 但是编译出错'Parameter lists differ',可我在process并没有参数。
小 小刚 Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-06 #6 就是因为没有参数,你应该这样定义: procedure Youredit1Click(Sender: TObject);
F fa_ya Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-06 #7 但我在创建动态控件是无法得到Sender:TObject的值,如何解决?
F fa_ya Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-06 #8 另外,如何使用SENDER参数,以及设置控件的TAG属性. 最好能有源代码。 请各位多多帮忙!thanks。
A alum Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-06 #9 正如小刚说的。。 --<b> var a:Tmenuitem; begin a: = Sender as Tmenuitem end; </b>
D dedman Unregistered / Unconfirmed GUEST, unregistred user! 2000-08-06 #10 tedit(sender).text:='fdsf' tag可放一些与该控件相关的信息