請問數個元件共用event該如何簡化重覆的code |
答題得分者是:elvis1000
|
tommylitang
一般會員 ![]() ![]() 發表:12 回覆:0 積分:2 註冊:2004-12-12 發送簡訊給我 |
如何簡化
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 發送簡訊給我 |
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 發送簡訊給我 |
更狠的寫法:
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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |