控件数组,+ 鼠标事件 + 该控件的 index

com235 2002-04-21 03:16:20



大约可以描述为电子地图,有10个点,是10个小ico 或 bmp 数组,希望在鼠标点其中一个时,在onclick事件中得到 该控件的index 。

我困惑好久了,以前在VB6 中很方便,现在 VB.Net也不行了,C++Bulider可以如何作??

感谢大民, Delphi 下我完全实现我的期望了

...全文
105 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Borlandor 2002-04-22
  • 打赏
  • 举报
回复
如此写即可:
int i;
for(i=0;i<10;i++)
{
Images[i]= new TImage(this);
Images[i]->Parent = Form1;
Images[i]->Picture->LoadFromFile("c:\\Temp\\MAPIF4L.ICO");
Images[i]->Top = i*20;
Images[i]->Tag = i;
//ImageClick :TImage->Image2->OnClick();//这句话表达的意识 该如何写?
Images[i]->OnClick = ImageClick;
}


void __fastcall TForm1::ImageClick(TObject *Sender)
{
Edit1->Text = IntToStr(((TImage*)Sender)->Tag);
}
pp616 2002-04-22
  • 打赏
  • 举报
回复
你先写一个Image1的OnClick()
代码如下:
void __fastcall TForm1::Image1Click(TObject *Sender)
{
TImage *img;
img=(TImage *)Sender; //将Sender强制转换为TImage
//然后就switch来判段按的是哪个Image控件了。
switch (img->Tag)
{
case 1:
ShowMessage("1");
break;
case 2:
ShowMessage("2");
break;
......
}
}

然后将下面的Image控件的Tag设置一下。
在把他们的OnClick设置成Image1的OnClick就好了。
Chimae 2002-04-22
  • 打赏
  • 举报
回复
所有的Image调用同一个Image1->OnClick事件;在Image1->OnClick中用Sender替代Image1,这样就可以了,具体如下:
TImage *theImage;
theImage = (TImage *)Sender;
这里的theImage就是Image1,你不同的Image2传递的Sender;
wangyagang 2002-04-22
  • 打赏
  • 举报
回复
加分
wangyagang 2002-04-22
  • 打赏
  • 举报
回复


1自定义消息
#define WM_MYClICK1 (WM_USER+201)

2//消息的响应过程
void __fastcall OnMyclick1(TMessage Message)
{

}
//以下通过宏定义实现消息的正确响应
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_MYClICK1, TMessage, OnMyclick1)
MESSAGE_HANDLER(WM_MYClICK2, TMessage, OnMyclick2)
.
.
.
.
. END_MESSAGE_MAP(TForm)
com235 2002-04-22
  • 打赏
  • 举报
回复
to 风舞飞扬 我的意思是如何产生Image1[i] 的 onclick事件代码????

windindance 2002-04-21
  • 打赏
  • 举报
回复
以后提问前请先搜索。
Image1[i]->OnClick = Image2->OnClick;
com235 2002-04-21
  • 打赏
  • 举报
回复
大佬:

怎样写Onclick()?
int i;
for(i=0;i<10;i++)
{
Image1[i]= new TImage(this);
Image1[i]->Parent = Form1;
Image1[i]->Picture->LoadFromFile("c:\\aa.bmp");
Image1[i]->Top = i*20;
Image1[i]->Tag = i;
ImageClick :TImage->Image2->OnClick();//这句话表达的意识
//该如何写?
}
com235 2002-04-21
  • 打赏
  • 举报
回复
I try it
windindance 2002-04-21
  • 打赏
  • 举报
回复
使用控件的Tag属性
10个bmp 数组有不同的Tag
onclick中取得Sender的Tag

13,826

社区成员

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

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