转换事件处理程序的Sender参数以读取控件的名称?

问题描述 投票:0回答:1

我正在使用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事件。

我想要实现的是让一个事件处理程序读取单击的NameTImage

据我所知,这可以通过TObject *Sender参数完成,但是我不明白如何将Sender转换为TImage

c++builder vcl c++builder-6
1个回答
0
投票

您在正确的轨道上可以进行简单的类型转换,但是语法错误。请尝试以下方法:

void __fastcall TForm1::Image1Click(TObject *Sender)
{
   TImage *image = (TImage*)Sender;
   // alternatively:
   // TImage *image = static_cast<TImage*>(Sender);

   AnsiString imageName = image->Name;
}
© www.soinside.com 2019 - 2024. All rights reserved.