動態産生10個元件的事件..... |
尚未結案
|
afu222
一般會員 發表:7 回覆:6 積分:2 註冊:2004-11-12 發送簡訊給我 |
請問各位大大:
我有看過了之前的動態産生元件的事件如何寫,
但是如果不只是一個元件的事件的情況,
每一個動態産生的元件的事件怎麼寫?
我的程式如下: procedure EditKeyPress(Sender: TObject; var Key: Char); for i := 1 to 10 do
begin
edit:=tedit.Create(Application);
edit.Name:='Edit' inttostr(i);
edit.Parent:=form1;
edit.OnKeyPress:= editKeyPress;
end; 煩請幫幫我解答一下,謝謝。
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
您可以在
for i := 1 to 10 do begin edit:=tedit.Create(Application); edit.Name:='Edit' inttostr(i); edit.Parent:=form1; edit.Tag := I; edit.OnKeyPress:= editKeyPress; end; 添加 Tag ,作為識別判斷。 在 procedure EditKeyPress(Sender: TObject; var Key: Char); begin Case Tcomponent(Sender).Tag of 1: 2: ... end; end; |
afu222
一般會員 發表:7 回覆:6 積分:2 註冊:2004-11-12 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
您可以先定義一陣列物件
Private AryEdit : array[1..10] of Tedit; .... if Assigned(AryEdit[1]) then For I:=1 to 10 do FreeAndNil(AryEdit[I]); for I := 1 to 10 do begin AryEdit[I] := TEdit.Create(Application); {應該是Form1} AryEdit[I].Name:='Edit' inttostr(i);{沒什麼意義!} AryEdit[I].Parent:=form1; AryEdit[I].Tag := I; AryEdit[I].OnKeyPress:= editKeyPress; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |