如何在panel上新建一个image,并且控制image的onclick事件?(20分)

  • 主题发起人 主题发起人 超越
  • 开始时间 开始时间

超越

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在panel上新建一个image(多个)?
在panel上生成image(多个)后,如何控制它们每一个的onclick事件?
 
Image := TImage.Create(Self);
Image.Parent := Panel;
Image.OnClik := ImageClick;
Image.Show;

-----
http://www.8421.org
 
这样的问题也问?!
 
To qdyoung:
不好意思,我的问题没完,我的本意是在panel上创建image后(有很多个image),如何
在panel上很好的排列每一个image,并让每一个image响应不同的onclick事件。每一个
image的事件要分别控制?:-+)
 
for i := 1 to 10 do
begin
Image := TImage.Create(Self);
Image.Parent := Panel;
Image.Tag := i;
Image.OnClik := ImageClick;
Image.Show;
end;

procedure Form1.ImageClick(Sender: TObject);
begin
case TImage(Sender).Tag of
1: //第一个Image被Click
2:
...
end;
end;
 
给你一段代码看看:
i:=1;
l:=6;
h:=6;
t:=frmtxlr.divstr(s,i);
if t<>'' then label9.Hide;
while t<>'' do
begin
img:=timage.Create(tsheetTxdz);
img.parent:=tsheetTxdz;
img.Name:='img'+copy(t,7,8);
img.Stretch:=true;
img.Width:=150;
img.Height:=150;
img.Left:=l;
img.Top:=h;
img.Tag:=i-length(t)-1;

lab:=tlabel.Create(tsheettxdz);
lab.parent:=tsheetTxdz;
lab.Name:='lab'+copy(t,7,8);
lab.AutoSize:=false;
lab.Alignment:=tacenter;
lab.Width:=img.Width;
lab.Left:=img.Left;
lab.Top:=img.Top+img.Height+4;
lab.Font.Color:=clred;
lab.Caption:=copy(t,7,4)+'年'+copy(t,11,2)+'月'+copy(t,13,2)+'日';

if fileexists(sExePath+'graph/'+t) then
begin
img.Picture.LoadFromFile(sExePath+'graph/'+t);
img.OnClick:=imgtxxs;
img.Hint:=lab.Caption;
img.ShowHint:=true;
end
else
begin
img.Canvas.Create;
//img.Canvas.pen.
img.Canvas.Font.Name:='宋体';
img.Canvas.Font.Size:=10;
img.Canvas.Font.Color:=clblue;
img.Canvas.TextOut(img.width div 2-20,img.height div 2-6,'无图像!');
end;

l:=l+img.Width+5;
if l>6+3*(img.width+5) then
begin
l:=6;
h:=h+img.Height+30;
end;
t:=frmtxlr.divstr(s,i);
end;
 
后退
顶部