关于数组下标的问题(100分)

  • 主题发起人 主题发起人 Nj
  • 开始时间 开始时间
N

Nj

Unregistered / Unconfirmed
GUEST, unregistred user!
现有如下代码:
var im:array[1..8,1..15] of TImage;

在这些图片的onclick里var i,j:integer;
目的让i和j分别获得所点击图片的数组值

例如点击im[4,8], i就等于4 j就等于8
 
说明白 一点吧
 
im[4,8]是个image的name...刚才试了一下,在onclick里获取自身的name结果是空...

procedure TForm1.Button1Click(Sender: TObject)
//动态创建image
var i,j:integer;
begin
for i:=1 to 2 do
for j:=1 to 3 do
begin
im[i,j]:=Timage.Create(Self);
im[i,j].Parent:=form1;
//定位
im[i,j].height:=32;
im[i,j].width:=32;

im[i,j].Left:=i*100+im[i,j].width;
im[i,j].top:=j*100+im[i,j].height;

im[i,j].Picture.LoadFromFile('1.jpg');
im[i,j].OnClick:=image1click;
end;
end;

procedureTform1.image1click(sender:TObject);
begin
showmessage((sender as TImage).name)
//取name,本以为结果会是 im[1,2] 之类..
end;

结果是空?... 如果直接点image1的话,结果是image1
 
把 im 中的所有 Image 的 OnClick 指向下面方法:
procedure TForm1.Image1Click(Sender: TObject);
var
i,j: integer;
begin
for i:=1 to 8
for j:=1 to 15
if TImage(Sender)=im[i,j] then
begin
//SomeThing := i;
//AnotherThing :=j;
break;
end;
end;
 
我的目的就是在image1click事加入一段代码,获取被点击的name的下标

比如im[1,2]被点击时, 取得 1 和 2
im[2,3]被点击时, 取得 2 和 3
 
按我说的试试,不会错的。
 
聪明啊!!kaida
 
接受答案了.
 
后退
顶部