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

如何將一個頁面上所有的EDIT的enable都設為FALSE

答題得分者是:change.jian
james_yu
一般會員


發表:33
回覆:19
積分:10
註冊:2003-07-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-21 08:37:32 IP:210.208.xxx.xxx 未訂閱
如何將一個頁面上所有的EDIT的enable都設為FALSE
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-21 08:57:15 IP:210.243.xxx.xxx 未訂閱
    var i:integer;
begin
  for i:=0 to yourform.controlcount-1 do begin
     if yourform.controls[i] is tedit then
     begin
        tedit(yourform.controls[i]).enabled:=false;
     end;
  end;
end;    
james_yu
一般會員


發表:33
回覆:19
積分:10
註冊:2003-07-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-21 09:24:11 IP:210.208.xxx.xxx 未訂閱
不行,上面的 for i:=0 to form2.controlcount-1 do begin中,form2.controlcount只為1,就跑出來了,但是我的edit有很多,為什麼
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-21 09:41:15 IP:202.39.xxx.xxx 未訂閱
如果那些 TEdit 的 Parent 不為 Form2 的話 就會有您所說的情況 發表人 - hagar 於 2004/06/21 09:52:04
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-21 09:46:00 IP:211.162.xxx.xxx 未訂閱
不好意思,插個花,請試試下面的代碼:

procedure TForm1.Button1Click(Sender: TObject);
var
  i:   integer;
begin
  for i := 1 to 6 do
  begin
    TEdit(FindComponent('Edit'   IntToStr(i))).Enabled := False;
  end;
end;
這是將Edit1~Edit6全部設置爲不可用,看看是否符合要求! <>> < class="code"> =============== 人生在勤,不索何獲? =============== 發表人 - bigdogchina 於 2004/06/21 10:23:01
------
人生在勤,不索何获?
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-21 10:01:50 IP:210.65.xxx.xxx 未訂閱
Sorry !! 我也來插一下花 這一篇給大家參考看看 http://delphi.ktop.com.tw/topic.php?topic_id=50433 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-21 10:22:39 IP:218.170.xxx.xxx 未訂閱
引言: 不行,上面的 for i:=0 to form2.controlcount-1 do begin中,form2.controlcount只為1,就跑出來了,但是我的edit有很多,為什麼
基本上hahalin的code應無問題, 如果有些沒改到可能原因有兩個 1. Parent不是Form (有些Edit在其他Group或Panel中) 可改用Components array或Recurisive所有wincontrol 2. 有些不是TEdit,如TDBEdit或3rd party元件, 可改為TCustomEdit
var i:integer;
begin
  for i:=0 to yourform.Component-1 do begin
     if yourform.Components[i] is TCustomEdit then
     begin
        TCustomEdit(yourform.Components[i]).enabled:=false;
     end;
  end;
end;
發表人 - ccchen 於 2004/06/21 10:29:32
james_yu
一般會員


發表:33
回覆:19
積分:10
註冊:2003-07-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-06-21 12:49:24 IP:210.208.xxx.xxx 未訂閱
for i:=1 to 15 do begin begin (self.FindComponent('edit' inttostr(i)) as tedit).Enabled:=false; end; end; 這樣可以勉強解決,ccchen說的不錯,我的所有edit都在pagecontrol中,edit的parent不是form2,所有找不到,但在pagecontrol中,如何去處理它呢.
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-06-21 13:04:05 IP:202.39.xxx.xxx 未訂閱
var 
  i: integer;
begin
  for i := 0 to PageControl1.ControlCount-1 do 
  begin
     if PageControl1.Controls[i] is TEdit then
     begin
        TEdit(PageControl1.Controls[i]).Enabled := False;
     end;
  end;
end;    
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-06-21 13:14:23 IP:61.222.xxx.xxx 未訂閱
var
  i:Integer;
begin
  for i:=0 to Self.ComponentCount-1 do
  begin
    if Self.Components[i] is TEdit then
      TEdit(Self.Components[i]).Enabled:=False;
  end;
end;
james_yu
一般會員


發表:33
回覆:19
積分:10
註冊:2003-07-08

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-06-21 15:30:23 IP:210.208.xxx.xxx 未訂閱
謝謝大家,其實大家講的都可以解決這個問題。
orson
中階會員


發表:5
回覆:135
積分:58
註冊:2002-07-11

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-06-23 10:25:27 IP:211.74.xxx.xxx 未訂閱
引言:
var 
  i: integer;
begin
  for i := 0 to PageControl1.ControlCount-1 do 
  begin
     if PageControl1.Controls[i] is TEdit then
     begin
        TEdit(PageControl1.Controls[i]).Enabled := False;
     end;
  end;
end;    
如果這上面的wincontrol只有TEDIT的話 可以直接用PageContro1.Enabled := False; 就好了 Orson
系統時間:2024-06-29 10:06:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!