請問有辦法用變數大量改變元件屬性嗎?或有其它替代的方法? |
答題得分者是:careychen
|
gallin
一般會員 發表:2 回覆:0 積分:0 註冊:2008-12-16 發送簡訊給我 |
各位高手們好@@~我是delphi新手,還請多多指教
請問如標題 例如我有很多butten butten01~butten99 改變caption屬性的話是 butten01.caption:='01' butten02.caption:='02' ... butten99.caption:='99' 等於右邊的字串還可以用inttostr(變數) 取代 但左邊的butten name似乎不行... 請問各位大大有沒有什麼辦法@@~>? 感恩 // 原來有這種東東@@~看來我要再加油~感謝各位大大囉@@~ 編輯記錄
gallin 重新編輯於 2008-12-17 11:40:38, 註解 @@感謝各位大哥‧
|
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
如果您的目的【只是改同類型元件的屬性的話】
可以這樣下,如果不是的話,可以參考看一下,依據自已的需求來修改 [code delphi] procedure TForm1.Button1Click(Sender: TObject); var I: Integer; begin for I:= 0 to Self.ComponentCount-1 do if Self.Components[I] is TButton then TButton(Self.Components[I]).Caption := Copy(Self.Components[I].Name, 7, 2); end; [/code] 但…一個畫面那麼多的元件.... 會不會多了點......? ===================引 用 gallin 文 章=================== 各位高手們好@@~我是delphi新手,還請多多指教 請問如標題 例如我有很多butten butten01~butten99 改變caption屬性的話是 butten01.caption:='01' butten02.caption:='02' ... butten99.caption:='99' 等於右邊的字串還可以用inttostr(變數) 取代 但左邊的butten name似乎不行... 請問各位大大有沒有什麼辦法@@~>? 感恩
------
價值的展現,來自於你用哪一個角度來看待它!! |
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
for i:=0 to ComponentCount-1 do begin
if Components[I] is TBUTTON then BEGIN TBUTTON(Components[I]).Caption := STRINGREPLACE(TBUTTON(Components[I]).Caption,'button','',[RFIGNORECASE]); END; End; ===================引 用 gallin 文 章=================== 各位高手們好@@~我是delphi新手,還請多多指教 請問如標題 例如我有很多butten butten01~butten99 改變caption屬性的話是 butten01.caption:='01' butten02.caption:='02' ... butten99.caption:='99' 等於右邊的字串還可以用inttostr(變數) 取代 但左邊的butten name似乎不行... 請問各位大大有沒有什麼辦法@@~>? 感恩
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
如果你是要暫時(執行時期變更元件名稱),請用下面的方法。
[code delphi] // Run Time更改元件名稱的方法 procedure TForm1.BitBtn1Click(Sender: TObject); var i : integer; sn : string; // 序號(01,02,03...) begin for i :=0 to self.ComponentCount -1 do begin if Self.Components[I] is TButton then begin // %格式字串的長度.整數位數不足?位則以0來補足(d代表整數形態) sn := Format('%2.2d', [i 1]); TButton(Self.Components[I]).name := 'MyButton' sn; // 故意把Caption再改回來,故畫面好像沒變一樣 TButton(Self.Components[I]).caption := 'Button' sn; // 驗證: 將目前Button的Name指定給Hint TButton(Self.Components[I]).hint := TButton(Self.Components[I]).name; // 顯示Button Hint,這時Button的Name已都變成MyButton0X了 TButton(Self.Components[I]).ShowHint := true; end; end; end; [/code] 如果你要永久變更元件的名稱,請用以下方法: http://delphi.ktop.com.tw/board.php?cid=30&fid=71&tid=92317 先批次改為Txt後用UltraEdit作批次取代後,再批次轉為binary。
------
努力會更接近成功 |
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|
roviury
一般會員 發表:3 回覆:49 積分:15 註冊:2008-08-28 發送簡訊給我 |
實際上你不可能一個個建立
只會用動態方法建立 var buts:array[1...99] of Tbutton; //1-99個物件變數 begin for i:=1 to 99 do begin buts[i]:=Tbutton.create(nil); //變數由類變成物件 with buts[i] do begin parent:=Form1; //把物件放到form1 caption:=Format('%2.2d', [i]) {inttostr(i)} ; //caption,已補0 name:='button' caption; //name(這個不設定也可以) end; end; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |