如何有效率的給值給Component?? |
|
cocodi
一般會員 發表:21 回覆:65 積分:17 註冊:2002-06-27 發送簡訊給我 |
請教各位:
假設有個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 發送簡訊給我 |
引言: 請教各位: 假設有個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 發送簡訊給我 |
謝謝 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 發送簡訊給我 |
|
cocodi
一般會員 發表:21 回覆:65 積分:17 註冊:2002-06-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |