線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1053
推到 Plurk!
推到 Facebook!

請問image物件陣列,如何抓到索引值?

答題得分者是:Justmade
happy
一般會員


發表:2
回覆:2
積分:0
註冊:2003-06-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-26 21:08:49 IP:210.61.xxx.xxx 未訂閱
諸位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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-26 21:31:53 IP:219.130.xxx.xxx 未訂閱
不是十分精楚你要甚麼索引值....若你指的是 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-26 21:44:32 IP:210.61.xxx.xxx 未訂閱
感謝版主....向您獻上最敬禮... . ....[ 敬 禮 !]....很大聲的.... 這是我第一次發問,內心充滿了感激及信心.
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-26 22:04:17 IP:61.56.xxx.xxx 未訂閱
你好: 我再這邊順便補充一下,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. 豬頭在這,將他放在與執行檔相同的路徑,你也可以放別的圖檔測試 ^^
系統時間:2024-05-02 19:20:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!