主要源码如下:在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;
begin
ShowMessage('ok'+IntToStr((Sender as TImage).Top));
end;
1:{处理Image1};
2:{处理Image2};
end;