主题:急救!!怎么在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]
							 
									
			
我来回复