在一循环里面动态增加TImage,增加它的OnDblClick事件,使其能够实现一下函数功能
void buttonclick(int i)//自定义事件
{
idnum = i;//idnum为全局变量
}
循环:
for (i=1;i<k;i++)
TImage *myimage = new TImage(Application);
..................
..................
myimage->OnDblClick = buttonclick(i+1);//出现错误:[C++ Error] friend.cpp(131): E2109 Not an allowed type
................
}
不能这样赋值,因为buttonclick既不是TImage的父类,也不是它的子类
myimage->OnDblClick = buttonclick(i+1); //对不起,这里应该是函数指针...
和你讨论一下,你要单独为每个image的DbClick写一段不同的函数吗?
看你的意思,好像是不同的image DbClick后执行的代码有所不同,你可以利用Sender啊!
void __fastcall TForm1::ImageOnDbClick(TObject *Sender)
{
TImage *tImage = (TImage *)Sender;
if(!tImage) return; //error;
switch(//某一个区分标志,比如tImage->Tag)
{
case : break;
}
}