[英]OnClick event for dynamic TImage
I am trying to build a memory game with 16 pairs of cards. 我正在尝试用16对卡构建记忆游戏。
I do not know exactly how to implement an OnClick
event. 我
OnClick
地知道如何实现OnClick
事件。 I am new at using C++Builder, so please help. 我是使用C ++ Builder的新手,请帮助。
The images are in an array, I allocate them dynamically like this: 图像在一个数组中,我像这样动态分配它们:
for(int i=0;i<4;i++)
{
for(int j = 0; j < 8 ; j++)
{
VectorOfImages[i*8+j]=new Card(9+i*112,9+j*112,pan, 0);
VectorOfImages[i*8+j]->image->Picture>LoadFromFile("...OOP\\c\\images\\0.bmp");
VectorOfImages[i*8+j]->image->Tag=i*8+j;
VectorOfImages[i*8+j]->image->Enabled=false;
}
}
OnClick
is a property of TImage
, you can assign it like you would any other property, eg: OnClick
是TImage
的属性,您可以像分配其他任何属性一样对其进行分配,例如:
for(int i = 0; i < 4; ++i)
{
for(int j = 0; j < 8; ++j)
{
int idx = (i*8) + j;
VectorOfImages[idx] = new Card(9+i*112, 9+j*112, pan, 0);
VectorOfImages[idx]->image->Picture->LoadFromFile("...OOP\\c\\images\\0.bmp");
VectorOfImages[idx]->image->Tag = idx;
VectorOfImages[idx]->image->Enabled = false;
VectorOfImages[idx]->OnClick = &ImageClicked; // <-- here
}
}
Then, add ImageClicked()
to your Form: 然后,将
ImageClicked()
添加到您的窗体中:
private:
void __fastcall ImageClicked(TObject *Sender);
...
void __fastcall TMyForm::ImageClicked(TObject *Sender)
{
// Sender points at the TImage that was clicked...
TImage *Image = static_cast<TImage*>(Sender);
// use Image as needed...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.