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

如何有效率的給值給Component??

 
cocodi
一般會員


發表:21
回覆:65
積分:17
註冊:2002-06-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-07-02 20:40:29 IP:61.170.xxx.xxx 未訂閱
請教各位: 假設有個form上有1000 label與一個長度有30個的字串陣列,label其中有 30個Label.name特意命名為 NoNoLabel1,NoNoLabel2,..NoNoLabel30(前兩個字特意定為NoNo) 我如想用迴圈的方式將30個陣列的值填給label.Caption,請問有何較快的方法可行 Ps.用以下方式當然可以,但我想知道,有無法用臨時性的 Tlabel 或指標的方 式達成或者任何比下快的方式都可 for i:=0 to ComponentCount-1 do begin if (Components[i] is Tlabel) then if (Copy(Tlabel(Components[i]).Name,1,4)='NoNo') then Tlabel(Components[i]).caption:=stary[i] ; end;
andersonhsieh
版主


發表:33
回覆:531
積分:439
註冊:2002-06-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-07-02 20:47:00 IP:211.23.xxx.xxx 未訂閱
引言: 請教各位: 假設有個form上有1000 label與一個長度有30個的字串陣列,label其中有 30個Label.name特意命名為 NoNoLabel1,NoNoLabel2,..NoNoLabel30(前兩個字特意定為NoNo) 我如想用迴圈的方式將30個陣列的值填給label.Caption,請問有何較快的方法可行 Ps.用以下方式當然可以,但我想知道,有無法用臨時性的 Tlabel 或指標的方 式達成或者任何比下快的方式都可 for i:=0 to ComponentCount-1 do begin if (Components[i] is Tlabel) then if (Copy(Tlabel(Components[i]).Name,1,4)='NoNo') then Tlabel(Components[i]).caption:=stary[i] ; end;
for i := 1 to 30 do begin if FindComponent('NoNoLabel' inttostr(i)) <> nil then Tlabel(FindComponent('NoNoLabel' inttostr(i))).caption:=inttostr(i); end; @@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@
cocodi
一般會員


發表:21
回覆:65
積分:17
註冊:2002-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-07-02 21:19:36 IP:61.170.xxx.xxx 未訂閱
謝謝 andersonhsieh 兄,code簡捷有力,但我想是否還有其它方法,以下不是code,只是想法: for i:=1 to 30 begin lname:='NoNoLabel' inttostr(i); TLabel(lname).Caption:=stary[i]; end; 這樣確定只要30個 loop 就結束了,但若如andersonhsieh 兄所言,假設這30個label是排在 1000個的後段,那可能實際會loop : 30 * (1000) 那麼多個process,說實在的,我不知道Delphi記憶體如何管理,僅是猜想.....還請海涵..
chia_ho
一般會員


發表:1
回覆:11
積分:2
註冊:2002-07-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-07-12 18:32:59 IP:202.145.xxx.xxx 未訂閱
var a:array[1..30] of TLabel; i:integer; begin for i:=1 to 30 do begin a[i]:=TLabel.Create(Form1); a[i].Caption:='NoNoLabel' inttostr(i); a[i].Visible:=true; a[i].Parent:=Form1; a[i].top:=i*30; end; end;
cocodi
一般會員


發表:21
回覆:65
積分:17
註冊:2002-06-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-07-12 20:16:41 IP:61.170.xxx.xxx 未訂閱
謝謝,我想這是我想要的啦
系統時間:2024-04-26 5:06:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!