我正在使用Borland C ++ Builder 6.0编写Form应用程序。我放置了2个TImage
控件,并生成了OnClick
事件处理程序,如下所示:
void __fastcall TForm1::Image1Click(TObject *Sender)
{
AnsiString imageName;
TImage *image;
// How can I get the image name via the *Sender ?
// How can I convert *Sender into TImage
image = (TComponent)*Sender;
imageName = image->Name;
}
我在两个OnClick
控件上都分配了相同的TImage
事件。
我想要实现的是让一个事件处理程序读取单击的Name
的TImage
。
据我所知,这可以通过TObject *Sender
参数完成,但是我不明白如何将Sender
转换为TImage
。
您在正确的轨道上可以进行简单的类型转换,但是语法错误。请尝试以下方法:
void __fastcall TForm1::Image1Click(TObject *Sender)
{
TImage *image = (TImage*)Sender;
// alternatively:
// TImage *image = static_cast<TImage*>(Sender);
AnsiString imageName = image->Name;
}