主题:急救!!怎么在BCB中为动态生成的控件添加事件呢???
liketm
[专家分:280] 发布于 2005-07-27 23:17:00
本人在程序运行时,动态的生成了一些控件,并利用从数据库中导出的数据为这些控件设置了属性,可是不知道怎么在这么控件下添加一些事件???哪位高手知道的话,请说明一下,最好的话能不能举个例子,谢了!!!!
回复列表 (共1个回复)
沙发
白丁丁 [专家分:0] 发布于 2005-08-06 10:47:00
可以单独设计一个公用的事件响应函数,然后为每个动态生成的控件的相应响应函数赋值,内容就是这个公共的响应函数。
例如,用鼠标随机在窗体上点击,生成新的Image控件,然后让所有的新Image控件具有相同的响应Click的函数:
void __fastcall TForm1::ImgClick(TObject *Sender)
{
TImage *cn;
cn=(TImage *)Sender;
TPoint pt;
GetCursorPos(&pt);
// 。。。。。pt.x
ShowMessage("新增站点!");
}
void __fastcall TForm1::onClick(TObject *Sender)
{
int ii;
TPoint pt;
GetCursorPos(&pt);
ImnCount++; //ImnCount是静态私有成员变量
ii= ImnCount;
Imn[ii]=new TImage(this);//Imn是静态私有成员变量,容纳新的图片控件
Imn[ii]->Parent=this;
Imn[ii]->Picture->LoadFromFile("xxxLarge.bmp");
Imn[ii]->Visible = true;
Imn[ii]->PopupMenu = PopupMenu1;
Imn[ii]->OnClick=ImgClick; //注意这一句,其他的响应函数可以以类似的方式实现
Imn[ii]->Left=pt.x;
Imn[ii]->Top=pt.y;
}
[em9]
我来回复