請問一下關於動態產生元件問題..... |
答題得分者是:aquarius
|
lichun1228
一般會員 發表:16 回覆:17 積分:11 註冊:2003-12-14 發送簡訊給我 |
我已經宣告了一個陣列
System.Windows.Forms.PictureBox[] mypicture = new PictureBox[10];
然而在click下
mypicture[image] = new PictureBox();
mypicture[image].Width = 32;
mypicture[image].Height = 32;
mypicture[image].Top = pictureBox6.Top 40;
mypicture[image].Parent = this;
可以產生出
問題是當我在讓它利用timer控制它的移動位置時
if (mypicture[image].Top >= this.Height - 90)
{
mypicture[image].Hide();
}else
{
mypicture[image].Top = mypicture[image].Top 1;
}
一次只能跑出一個在移動!!!
而不能二個以上...我知道是索引的關西導致不能"同時"移動陣列的另外值
請問有前輩是否可以指點方針 感恩!!
|
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
引言: 我已經宣告了一個陣列 System.Windows.Forms.PictureBox[] mypicture = new PictureBox[10]; 然而在click下 mypicture[image] = new PictureBox(); mypicture[image].Width = 32; mypicture[image].Height = 32; mypicture[image].Top = pictureBox6.Top 40; mypicture[image].Parent = this; 可以產生出 問題是當我在讓它利用timer控制它的移動位置時 if (mypicture[image].Top >= this.Height - 90) { mypicture[image].Hide(); }else { mypicture[image].Top = mypicture[image].Top 1; } 一次只能跑出一個在移動!!! 而不能二個以上...我知道是索引的關西導致不能"同時"移動陣列的另外值 請問有前輩是否可以指點方針 感恩!!當然可以一次控制多個, 但是你程式的寫法就是一次只控制一個 TIMAGE 呀!! 還是你是每一個 TIMAGE 關連到一個 TTIMER 中? 你的問題應該是程式的流程有問題, 但是從你 POST 出來的片段只能說, 看起來就是一次跑一個呀!!.. ...
------
水瓶男的blog: http://791909.blogspot.com |
lichun1228
一般會員 發表:16 回覆:17 積分:11 註冊:2003-12-14 發送簡訊給我 |
嗯 我有試過每一個image都對應到一個timer
不過程式在執行時當第一個還在跑時 第二個也啟動就會出錯了
當我陣列裡都判斷寫在同一個timer也是一樣
本來是這麼寫
if (mypicture[0].parent == this){
if (mypicture[0].Top >= this.Height - 90)
{
mypicture[0].Hide();
}else
{
mypicture[0].Top = mypicture[0].Top 1;
}
}
if (mypicture[1].parent == this){
if (mypicture[1].Top >= this.Height - 90)
{
mypicture[1].Hide();
}else
{
mypicture[1].Top = mypicture[1].Top 1;
}
}
...到第9個 每一個都做判斷
不過只要同時有二個進行 就會發生索引上的問題 @@"
|
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
直接貼個 DELPHI 的 SAMPLE CODE 給你看.
var ia : array[1..10] of TImage ; procedure TForm1.Button1Click(Sender: TObject); var i : integer ; begin for i:=1 to 10 do begin ia[i]:=TImage.Create(self); ia[i].Picture.LoadFromFile('c:\winnt\zapotec.bmp') ; ia[i].AutoSize:=true ; ia[i].Canvas.TextOut(10,10,inttostr(i)) ; ia[i].Left:=i*60 ; ia[i].Top:=0 ; ia[i].Parent:=self ; end ; end; procedure TForm1.Timer1Timer(Sender: TObject); var i : integer ; begin if not assigned(ia[1]) then exit ; for i:=1 to 10 do begin if not ia[i].Visible then continue ; if ia[i].Top>100 then begin ia[i].hide ; continue ; end ; ia[i].Top:=ia[i].Top i ; end ; end;...Aquarius
------
水瓶男的blog: http://791909.blogspot.com |
lichun1228
一般會員 發表:16 回覆:17 積分:11 註冊:2003-12-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |