动态生成的组件的事件如何写,,(50分)

  • 主题发起人 主题发起人 zhangqinghe
  • 开始时间 开始时间
Z

zhangqinghe

Unregistered / Unconfirmed
GUEST, unregistred user!
tcreatcheckbox := tcheckbox.Create(self);
tcreatcheckbox.Parent := self;
tcreatcheckbox.SetBounds(64+i*70,680,60,24);
tcreatcheckbox.Caption := '第'+inttostr(i+1)+'条线';
tcreatcheckbox.OnClick:=myboxcheck(i);
其中的myboxcheck如何定义呢,我想在生成的组件checkbox在点时,弹出这个i值。
 
type
TForm1 = class(TForm)
procedure myboxcheck(Sender:TObject); //添加这一行


procedure TForm1.myboxcheck(Sender:TObject);
begin
ShowMessage('abc');
end;

tcreatcheckbox.OnClick:=myboxcheck(i);
改为
tcreatcheckbox.OnClick:=myboxcheck;

i 定义为全局变量
 
tcreatcheckbox := tcheckbox.Create(self);
tcreatcheckbox.Parent := self;
tcreatcheckbox.SetBounds(64+i*70,680,60,24);
tcreatcheckbox.Caption := '第'+inttostr(i+1)+'条线';
tcreatcheckbox.tag:=i; //用tag记下i
tcreatcheckbox.OnClick:=myboxcheck;

//继续楼上的,改一改。完全解决问题。
type
TForm1 = class(TForm)
procedure myboxcheck(Sender:TObject); //添加这一行


procedure TForm1.myboxcheck(Sender:TObject);
begin
showmessage(inttostr((sender as tcheckbox).tag));
end;
 

Similar threads

后退
顶部