怎么样动态创建多个Timage,而且鼠标点击任意一个都能够知道是哪一个image!!!

cliefly 2003-08-23 12:40:34
也就是创建了很多Timage且装载了图片 后用鼠标随便点击一副图片我要知道我鼠标点中的是哪一个image控件!!!!!!
...全文
46 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Behard 2003-09-12
  • 打赏
  • 举报
回复
可以 接上
imgonclick(Image1); // 把你要改变的控件的指针传递进去
即可
fronm 2003-09-12
  • 打赏
  • 举报
回复
我也问句。 如果没有单击任何图片,能改变其中的图片吗?
柯本 2003-08-23
  • 打赏
  • 举报
回复
改一下即可
void __fastcall TForm1::imgonclick(TObject *Sender)
{
//ShowMessage("你现在点的是:"+ ((TImage *)Sender)->Name);
TImage *img=(TImage *)Sender;
if (img->Name=="Image4")
Image->Picture->Bitmap->LoadFromFile("bbb.bmp");

}
Friecin 2003-08-23
  • 打赏
  • 举报
回复
先声明如下函数:
void __fastcall MyImageClick(TObject * Sender);

实现:

void __fastcall TFrom::MyImageClick(TObject * Sender)
{

TImage *Image;
//得到鼠标点击的Image
Image = dynamic_cast<TImage *>(Sender);
Image->Picture->Bitmap->LoadFromFile("bbb.bmp");
}

在你 TImage *MyImage = new TImage(this)的时候,
加入:MyImage->OnClick = MyImageClick;

OK!~
cliefly 2003-08-23
  • 打赏
  • 举报
回复
我指的是把字符变量"Image4"用什么方式变成一个可操作的Image对象的名称,我的操作上
的意思就是如下:
AnsiString img="Image4";
img->Picture->Bitmap->LoadFromFile("bbb.bmp");
cliefly 2003-08-23
  • 打赏
  • 举报
回复
那如果我要指定其中一个Image更换图片又应该怎么实现呢???
柯本 2003-08-23
  • 打赏
  • 举报
回复
一个思路,可通过,不过你要考虑重入与释放,
void __fastcall TForm1::imgonclick(TObject *Sender)
{
ShowMessage("你现在点的是:"+ ((TImage *)Sender)->Name);

}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int ct=StrToInt(Edit1->Text);
for(int i=1;i<ct;i++)
{
TImage *img = new TImage(this);
img->Left=i*30+50;
img->Width=25;
img->Top=50;
img->Name="Image"+String(i);
img->Parent=this;
img->Visible=true;
img->Enabled=true;
img->Picture->Bitmap->LoadFromFile("aaa.bmp");
img->OnClick=&imgonclick;
}
}
hongwuzhao 2003-08-23
  • 打赏
  • 举报
回复
使用Tag属性

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧