• 主页
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发

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

com235 2002-04-21 03:16:20



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

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

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

...全文
27 点赞 收藏 10
写回复
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
回复 点赞
发动态
发帖子
C++ Builder
创建于2007-08-02

2570

社区成员

10.2w+

社区内容

C++ Builder相关内容讨论区
社区公告
暂无公告