如: Button.OnClick:=ButtonClick; .... procedure Form1.ButtonClick(Sender:TObject); begin showmessage('ok'); end;
给你个思想:如果是某类控件的子类发出的消息则做什么事情; so: 如果:(Tlabel的PARENT是Panel,则PANEL下的子控件Tlabel发出了消息);语句: label.parent:=panel;(or form or nil); label.onclick:=labelclick;(对事件付过程);procedure form.labelclick(sender:TObject); begin if sender is tlabel then begin showmessage('ok'+(sender as tlabel).name) [or caption];这个(sender as ***).name or caption非常重要,它是关键部分.只要你弄懂了它就可以形成你想做的事件;记得在FORMCLOSE时要记得历遍所有的动态控件并free了它;实际上在WIN2000系统下系统会自动的free掉的.但在WIN98下就要小心了.另外,如果是用数据库做动态控件的话记得要在循环语句之后close掉ADOQUERY; end;
Button.OnClick:=ButtonClick;
....
procedure Form1.ButtonClick(Sender:TObject);
begin
showmessage('ok');
end;
so:
如果:(Tlabel的PARENT是Panel,则PANEL下的子控件Tlabel发出了消息);语句:
label.parent:=panel;(or form or nil);
label.onclick:=labelclick;(对事件付过程);procedure form.labelclick(sender:TObject);
begin
if sender is tlabel then
begin
showmessage('ok'+(sender as tlabel).name) [or caption];这个(sender as ***).name or caption非常重要,它是关键部分.只要你弄懂了它就可以形成你想做的事件;记得在FORMCLOSE时要记得历遍所有的动态控件并free了它;实际上在WIN2000系统下系统会自动的free掉的.但在WIN98下就要小心了.另外,如果是用数据库做动态控件的话记得要在循环语句之后close掉ADOQUERY;
end;