請問image物件陣列,如何抓到索引值? |
答題得分者是:Justmade
|
happy
一般會員 發表:2 回覆:2 積分:0 註冊:2003-06-21 發送簡訊給我 |
諸位DELPHI前輩吉祥:
小弟初學,雖參詳其他問題回覆情況,遇下列問題,尚請能者撥冗見覆.
var
a:array[1..5] of timage;
i:integer;
begin
for i:=1 to 5 do
begin
a[i]:=timage.Create(self);
a[i].Parent:=self;
a[i].Picture :=image1.Picture ; --->image1.picture已設定圖案
a[i].Top:=100;
a[i].Left:=i*80;
a[i].Stretch:=true;
a[i].OnClick:=image1click;
end;
end; procedure TForm1.Image1Click(Sender: TObject);
begin
edit1.text:=tedit(sender).text; ---->始終抓不到索引值?????
end; 請問好心人,要如何才能,於按下image後,抓到索引值呢? 感激不盡!!
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
不是十分精楚你要甚麼索引值....若你指的是 Array 中的第幾個的話,可以試試 :
var a:array[1..5] of timage; i:integer; begin for i:=1 to 5 do begin a[i]:=timage.Create(self); a[i].Parent:=self; a[i].Picture :=image1.Picture ; --->image1.picture已設定圖案 a[i].Top:=100; a[i].Left:=i*80; a[i].Stretch:=true; a[i].Tag := i; a[i].OnClick:=image1click; end; end; procedure TForm1.Image1Click(Sender: TObject); begin edit1.text:= IntToStr(TImage(sender).Tag)); ---->始終抓不到索引值????? end; |
happy
一般會員 發表:2 回覆:2 積分:0 註冊:2003-06-21 發送簡訊給我 |
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
你好:
我再這邊順便補充一下,TList 物件可以更容易管理物件陣列喔。
下面的例子參考看看吧
< class="code">
unit MainSrc; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls; type
TForm1 = class(TForm)
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
FImageList : TList;
procedure ImageClick (Sender : TObject);
public
{ Public declarations }
end; var
Form1: TForm1; implementation
{$R *.dfm} procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
idx : integer;
begin
FImageList := TList.Create;
for i := 0 to 4 do begin
idx := FImageList.Add(TImage.Create(self));
with TImage(FImageList.Items [idx]) do begin
Top := 0;
Left := i * 20;
Width := 10;
Height := 10;
OnClick := ImageClick;
Parent := self;
Picture.LoadFromFile ('.\豬頭.BMP');
end;
end;
end; procedure TForm1.FormDestroy(Sender: TObject);
begin
FreeAndNil (FImageList);
end; procedure TForm1.ImageClick(Sender: TObject);
begin
ShowMessage (format ('我是編號 %d 的豬頭。', [FImageList.IndexOf(Sender)]));
end; end.
豬頭在這,將他放在與執行檔相同的路徑,你也可以放別的圖檔測試 ^^
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |