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

如何clear 所有 editbox?

尚未結案
hkguy80
一般會員


發表:20
回覆:21
積分:8
註冊:2004-09-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-14 13:17:36 IP:218.189.xxx.xxx 未訂閱
除以下方法,有沒有其他更好的方法呢? 令我不需每次加editbox, 都作修改. thx procedure TfrmMain.tabStaffInitalizeAllFields(); begin edtStaffChiName.Text := ''; edtStaffEngName.Text := ''; edtStaffHKID.Text := ''; edtStaffCheckDigit.Text := ''; edtStaffHomePhone.Text := ''; edtStaffMobilePhone.Text := ''; edtStaffAddress.Text :=''; edtStaffRemarks.Text := ''; end;
change.jian
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-14 13:33:13 IP:61.218.xxx.xxx 未訂閱
hi,hkguy80: 1.如果TfrmMain裡所有的Edit都要清掉的話,可以用以下方法
procedure TfrmMain.tabStaffInitalizeAllFields();
var
  i:Integer;
begin
  for i:=0 to ComponentCount-1 do
  begin
    if (Components[i] is TEdit) then
      (Components[i] as TEdit).Text:='';
  end;
end;    
2.如果TfrmMain裡只是部是的TEdit要清的話,如下:
procedure TfrmMain.tabStaffInitalizeAllFields();
const
  EditList:array [0..7] of string = (
    'edtStaffChiName','edtStaffEngName','edtStaffHKID','edtStaffCheckDigit','edtStaffHomePhone',
    'edtStaffMobilePhone','edtStaffAddress','edtStaffRemarks'); //裡面擺要清除的元件名稱
var
  i:Integer;
  cmp:TComponent;
begin
  for i:=0 to high(EditList) do
  begin
    cmp:=FindComponent(EditList[i]);
    if (cmp is TEdit) then
      (cmp as TEdit).Text:='';
  end;
end;
poemkevin
初階會員


發表:26
回覆:77
積分:30
註冊:2002-10-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-14 14:54:37 IP:210.202.xxx.xxx 未訂閱
change.jian 版主大大的方法比較好呢, 又學到一招了, 很感謝^^ 小弟以前都笨笨的, 只好將edit命名為edit1~edit8 for i := 1 to 8 do begin TEdit(frmMain.FindComponent(edtStaff' intToStr(i))).Text := ''; end; 照大大的改法可以改為 const EditList:array [0..7] of string = ( 'edtStaffChiName','edtStaffEngName','edtStaffHKID','edtStaffCheckDigit','edtStaffHomePhone', 'edtStaffMobilePhone','edtStaffAddress','edtStaffRemarks'); //裡面擺要清除的元件名稱 var i:Integer; begin for i:=0 to high(EditList) do begin TEdit(frmMain.FindComponent(EditList[i]).Text := ''; end; end; 發表人 - poemkevin 於 2004/09/14 15:07:26
hkguy80
一般會員


發表:20
回覆:21
積分:8
註冊:2004-09-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-14 16:29:39 IP:218.189.xxx.xxx 未訂閱
這個程式真的很棒. 謝謝. 再請問是否添加parameter,即可改為適合各 form. procedure TfrmMain.tabStaffInitalizeAllFields(frm:Tform); var i:Integer; begin for i:=0 to frm.ComponentCount-1 do begin if (frm.Components[i] is TEdit) then (frm.Components[i] as TEdit).Text:=''; end; end; thx.
hkguy80
一般會員


發表:20
回覆:21
積分:8
註冊:2004-09-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-14 16:36:06 IP:218.189.xxx.xxx 未訂閱
I tried the following code. but the ComponentCount always is equal to 1. Can anyone help me to correct it? thx. procedure TfrmMain.tabStaffInitalizeAllFields(tbShtTemp: TTabSheet); var i:Integer; begin for i:=0 to tabStaff.ComponentCount-1 do begin if (tabStaff.Components [i] is TEdit) then (tabStaff.Components[i] as TEdit).Text:='' else if (tabStaff.Components[i] is TDateTimePicker) then (tabStaff.Components[i] as TdateTimePicker).Date := Date; end; end; 發表人 - hkguy80 於 2004/09/14 17:35:12
hkguy80
一般會員


發表:20
回覆:21
積分:8
註冊:2004-09-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-14 16:36:32 IP:218.189.xxx.xxx 未訂閱
Sorry. i post the post repeatly. pls ignore this post. thx. 發表人 - hkguy80 於 2004/09/14 17:07:18
change.jian
版主


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-09-14 21:25:33 IP:61.229.xxx.xxx 未訂閱
1.見底下紅色註解.    2.如果這個procedure是用來清除在傳入的TTabSheet上的元件的話,那麼你要注意TTabSheet上的元件Owner到底是誰,如果Owner不是TTabSheet的話,那麼這個procedure是清不掉TTabSheet上的那些TEdit元件的,因為TTabSheet只是那些TEdit元件的Parent而已    
引言: I tried the following code. but the ComponentCount always is equal to 1. Can anyone help me to correct it? thx.
 
procedure TfrmMain.tabStaffInitalizeAllFields(tbShtTemp: TTabSheet);
var
  i:Integer;
begin
  //底下用的是tabStaff,
  //與上面傳入的tbShtTemp不一樣,所以應該是這裡錯了
  for i:=0 to tabStaff.ComponentCount-1 do
  begin
    if (tabStaff.Components [i] is TEdit) then
      (tabStaff.Components[i] as TEdit).Text:=''
    else
    if (tabStaff.Components[i] is TDateTimePicker) then
      (tabStaff.Components[i] as TdateTimePicker).Date := Date;
  end;
end;
發表人 - hkguy80 於 2004/09/14 17:35:12
hkguy80
一般會員


發表:20
回覆:21
積分:8
註冊:2004-09-06

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-09-15 11:14:02 IP:218.189.xxx.xxx 未訂閱
Thx Q for yr solution. i think I confuse the different of Owner and Parent.
系統時間:2024-05-18 13:49:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!