也谈在Delphi中的窗口控制
软件世界
《电脑报》2001年第10期中,曾晓明朋友在《优化你的Delphi程序》一文中提到一个关于窗口控制的方法,是对于文本框Edit对回车键的响应:有时操作人员在输入数据之后(特别是用小键盘输入数值数据时),通常会习惯地打入回车键以表示确认,但是在Delphi中的Edit控件并没有专门针对回车键响应的事件。曾晓明朋友提到的方法是改变每一个Edit控件的OnKeyPress事件,我还有一种更为简捷的方法是改变Form的OnKeyPress事件,这样可以省去写很多代码,通用性强也不容易出错。以在多个文本框Edit中进行输入为例,代码如下:
Procedure TForm1.FormKeyPress(Sender:Tobject;Var Key:Char);
Begin
if key=#13 then {判断是按执行键
if (ActiveControl is TEdit) Then
Begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end;
End;
如果是在Dbgrid内进行文本输入,则代码如下:
Procedure TForm1.FormKeyPress(Sender:Tobject;Var Key:Char);
begin
if (ActiveControl is TDbgrid) Then
begin
With TDbgrid(ActiveControl) Do
if Selectedindex<(FieldCount-1) then
Selectedindex:=Selectedindex+1 {移动到下一字段}
else Selectedindex:=0;
end;
end;
总之根据用到的不同的文本输入控件,可以灵活运用。