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

請問一下關於動態產生元件問題.....

答題得分者是:aquarius
lichun1228
一般會員


發表:16
回覆:17
積分:11
註冊:2003-12-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-15 01:36:56 IP:218.164.xxx.xxx 未訂閱
我已經宣告了一個陣列 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-15 10:19:08 IP:210.243.xxx.xxx 未訂閱
引言: 我已經宣告了一個陣列 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-15 10:27:22 IP:218.164.xxx.xxx 未訂閱
嗯 我有試過每一個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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-15 11:34:36 IP:211.23.xxx.xxx 未訂閱
直接貼個 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-15 11:40:57 IP:218.164.xxx.xxx 未訂閱
真的很感謝你..我知道卡在那裡了! 再次非常感謝!!
系統時間:2017-10-23 21:26:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!