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

請問數個元件共用event該如何簡化重覆的code

答題得分者是:elvis1000
tommylitang
一般會員


發表:12
回覆:0
積分:2
註冊:2004-12-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-18 21:07:13 IP:219.78.xxx.xxx 未訂閱
如何簡化 procedure TForm1.Edit1Change(Sender: TObject); begin setf(1); //a procedure end; procedure TForm1.Edit2Change(Sender: TObject); begin setf(2); end; procedure TForm1.Edit3Change(Sender: TObject); begin setf(3); end; ............. procedure TForm1.Edit100Change(Sender: TObject); begin setf(100); end; 發表人 - tommylitang 於 2004/12/18 21:35:55
elvis1000
一般會員


發表:6
回覆:50
積分:16
註冊:2004-12-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-18 21:35:21 IP:218.165.xxx.xxx 未訂閱
procedure TForm1.Edit1Change(Sender: TObject);
begin
  setf(Copy(TEdit(Sender).Name,5,Length(TEdit(Sender).Name)-4));
end;
把Edit1-100全選後, 再把onchange都設為Edit1change ----------------------- God bless you! I am Dark_Angel.
------
-----------------------
God bless you!
I am Dark_Angel.
elvis1000
一般會員


發表:6
回覆:50
積分:16
註冊:2004-12-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-18 21:52:15 IP:218.165.xxx.xxx 未訂閱
更狠的寫法:    
procedure SetAllEdit;  //直接用程式設定全部OnChange
var
  i:integer;
begin
  for i:=0 to Self.ComponentCount-1 do
    begin
      if Self.Components[i] is TEdit then
        begin
          TEdit(Self.Components[i]).OnChange:=Edit1Change;
        end;//if
    end;//for
end;    procedure TMainForm.Edit1Change(Sender: TObject);
begin
  //string
  Setf(Copy(TEdit(Sender).Name,5,Length(TEdit(Sender).Name)-4));
  //integer
  Setf(StrToInt(Copy(TEdit(Sender).Name,5,Length(TEdit(Sender).Name))-4));
end;
----------------------- God bless you! I am Dark_Angel.
------
-----------------------
God bless you!
I am Dark_Angel.
Jeffrey
初階會員


發表:10
回覆:58
積分:38
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-27 08:37:34 IP:203.67.xxx.xxx 未訂閱
也可以利用Tag的屬性,給個別給Tag值!
procedure TForm1.EditChange(Sender: TObject);
begin
    setf(TEdit(Sender).Tag);
end;
系統時間:2024-07-01 18:35:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!