动态控件与动态事件(100)

  • 主题发起人 主题发起人 土拨鼠
  • 开始时间 开始时间

土拨鼠

Unregistered / Unconfirmed
GUEST, unregistred user!
我动态生成了8个TEDIT控件,现在有个问题,我要为每一个EDIT控件写KEYPRESS事件,使其在按下回车键后,焦点移到下一个EDIT控件上。例如 动态生成 edt1...edt8 8个控件为edt1.onkeypress写事件,使其当按下回车键后焦点到edt2上如果不是动态生成的空间,很好写,edt2.setfocus就可以,现在动态生成的,我不知道怎么来写,希望有高手指点下,谢谢
 
procedure EditKEYPRESS(Frm: TForm; Sender: TObject; var Key: Char);var Edit1, Edit2: TEdit; i, k : integer;begin if key<>#13 then exit; Edit1:=@Sender; 这里处理判断是第几个Edit,记下来 for i:=0 to Edit1.Owner.ComponentCount-1 do begin if Edit1.Owner.Components.ClassName='TEdit' then begin Edit2:=TEdit(Edit1.Owner.Components); 如果是需要获得焦点的edit end; end;end;创建Edit的地方:var KEYPRESSEvent : TNotifyEvent;begin Edit := TEdit.Create(Form); with Edit do begin Name:='Edit1'; Parent := Panel; Left := 46; Width:=280; Top := 6; Text := ''; end; KEYPRESSEvent :=nil; integer(@KEYPRESSEvent) := integer(@EditKEYPRESS); Edit.KEYPRESS:=KEYPRESSEvent;
 
已找到处理方法,不错还是谢谢楼上的。大体思路我们还是一致的。
 
后退
顶部