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

TPanel

答題得分者是:yachanga
jslucky
一般會員


發表:4
回覆:8
積分:2
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-30 17:55:16 IP:211.72.xxx.xxx 未訂閱
假設我有3個 Panel 元件及一個edit 在 form 上, 我希望 依 edit 中的值 來改變 panel 中的顏色..又不想用下面這種 方法 (因為可能會有很多個 panle) 請問各位高手 有其他好 方法 嗎...謝謝.... procedure TForm1.Edit1Exit(Sender: TObject); begin if Edit1.Text = '1' Then Panel1.Color := ClAqua else if Edit1.Text = '2' Then Panel2.Color := ClAqua else if Edit1.Text = '3' Then Panel3.Color := ClAqua; end;
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-30 18:34:34 IP:218.163.xxx.xxx 未訂閱
procedure TForm1.Edit1Exit(Sender: TObject);
var
  SL: TStringList;
begin
  SL := TStringList.Create;
  SL.Add('1');
  SL.Add('2');
  SL.Add('3');
  case SL.IndexOf(Edit1.Text) of
    0:  Panel1.Color := ClAqua;
    1:  Panel2.Color := ClAqua;
    2:  Panel3.Color := ClAqua;
  end;
  SL.Free;
end;     
網海無涯,學無止境!
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-30 18:46:21 IP:218.15.xxx.xxx 未訂閱
jslucky你好: procedure TForm1.Edit1Change(Sender: TObject); var  I: Integer;  Temp: TComponent; begin   for i:=0 to componentcount-1 do   begin     Temp := Components[I];     if Temp is TPanel then         (Temp as TPanel).Color:=random(35000);       end; end; 试试看 ——行径窄处,留一步与人行——
jslucky
一般會員


發表:4
回覆:8
積分:2
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-30 18:49:14 IP:211.72.xxx.xxx 未訂閱
請問有沒有類似 PANEL(I).CLOLOR 或 panel.(name).color 等..這種可以變動帶入值的 方法..這樣的話如果有30個 panel 就不用寫panel1-panel30 了.....謝謝...
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-30 18:55:44 IP:210.68.xxx.xxx 未訂閱
用Tcontrol 比較好吧    var I: Integer; Temp: TControl; begin for i:=0 to ControlCount-1 do  begin   Temp := controls[i];   if Temp is TPanel then   (Temp as TPanel).Color:=random(35000);   end; end; <>~悠遊法國號~
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-30 19:02:20 IP:210.243.xxx.xxx 未訂閱
另一種做法     for i:=1 to 30 do   if (form1.FindComponent('Panel'+inttostr(i)) is TPanel) then    begin     (form1.FindComponent('Panel'+inttostr(i)) as Tpanel).Color:=random(3500);    end;    ~悠遊法國號~
jslucky
一般會員


發表:4
回覆:8
積分:2
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-03-30 19:29:22 IP:211.72.xxx.xxx 未訂閱
我要的是 變動帶入 值.. FindComponent('Panel' EDit1.Text) 正是我要的 這樣一句就可以解決選那個變那個了...謝謝 yachanga ....也謝謝其它各位.. procedure TForm1.Edit1Change(Sender: TObject); begin (FindComponent('Panel' EDit1.Text) as TPanel).Color:=ClAqua; end;
系統時間:2024-06-01 16:00:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!