主要源码如下:在Panel1上创建一组TImage控件:
public
{ Public declarations } procedure ClickMe(Sender: TObject);
var
Form1: TForm1;
Image:TImage;
ImageList:TList;
xleft,ytop:integer;procedure TForm1.FormCreate(Sender: TObject);
begin
xleft:=100;
ytop:=10;
ImageList:=TList.Create;
end;procedure TForm1.FormDestroy(Sender: TObject);
var
t:integer;
begin
for t:=ImageList.Count - 1 downto 0 do
TImage(ImageList[t]).Free;
ImageList.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
fImage:=TImage.Create(self.Panel1);
with fImage do
begin
//属性
Parent:=self.Panel1;
Left :=xleft;
Top := ytop;
Width:=50;
Height:=50;
Stretch:=true;
Picture.LoadFromFil('c:\1.bmp');
Tag:=ImageList.Count;
Visible:=true; //事件
OnClick:=ClickMe;
end; ImageList.Add(fImage);
ytop:=ytop+55;
end;procedure TForm1.ClickMe(Sender: TObject);
begin
ShowMessage('ok'+IntToStr(fImage.Top));
//点击任意一个Image,只能显示最后创建的Image的值。
如何准确识别哪一个Image被点击?
//最好是具有唯一性,即如果有两个以上的Image的BoundsRect完全相同(即相互覆盖),也能准确识别。
end;
public
{ Public declarations } procedure ClickMe(Sender: TObject);
var
Form1: TForm1;
Image:TImage;
ImageList:TList;
xleft,ytop:integer;procedure TForm1.FormCreate(Sender: TObject);
begin
xleft:=100;
ytop:=10;
ImageList:=TList.Create;
end;procedure TForm1.FormDestroy(Sender: TObject);
var
t:integer;
begin
for t:=ImageList.Count - 1 downto 0 do
TImage(ImageList[t]).Free;
ImageList.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
fImage:=TImage.Create(self.Panel1);
with fImage do
begin
//属性
Parent:=self.Panel1;
Left :=xleft;
Top := ytop;
Width:=50;
Height:=50;
Stretch:=true;
Picture.LoadFromFil('c:\1.bmp');
Tag:=ImageList.Count;
Visible:=true; //事件
OnClick:=ClickMe;
end; ImageList.Add(fImage);
ytop:=ytop+55;
end;procedure TForm1.ClickMe(Sender: TObject);
begin
ShowMessage('ok'+IntToStr(fImage.Top));
//点击任意一个Image,只能显示最后创建的Image的值。
如何准确识别哪一个Image被点击?
//最好是具有唯一性,即如果有两个以上的Image的BoundsRect完全相同(即相互覆盖),也能准确识别。
end;
解决方案 »
- 继续学习求助delphi
- 急!!!又是WebBrowser的问题,如何焦点移至网页的文本框及按钮上?
- 100分:已经获得了一个ADO Recordset,如何把其中的所有记录插入到一个SQLSERVER表中?
- 求救:扫描组件问题,40分奖赏
- 如何取出空文件夹的地址和名称?
- Access数据库中有一个表,当Table.open时总是报错
- Strign to Pchar的函数是什么,我忘了?
- 怎样显示TString的内容?
- 偶想给unit重命名,不知道该怎么办????????(牛虻)
- 急急急,请编程爱好者帮忙,在下感激不尽!!!
- 真的急! 真的急!真的急!
- 哪位帮看一下这些代码,关于ado联接的,谢谢了
begin
ShowMessage('ok'+IntToStr((Sender as TImage).Top));
end;
1:{处理Image1};
2:{处理Image2};
end;