if key=#13 then Begin key:=#0; perform(WM_NEXTDLGCTL,0,0); end
procedure TFrmMain.DBedtJoinInKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_Return then begin if Trim(DBedtJoinIn.Text) = '' then begin DBedtJoinIn.Perform(WM_LButtonDown, 0, 0); DBedtJoinIn.Perform(WM_LButtonUp, 0, 0); end else begin DBcmbxCetype.Perform(WM_LButtonDown, 0, 0); DBcmbxCetype.Perform(WM_LButtonUp, 0, 0); end; end; end; //或一个通用的:记得Edit->Tab Order中各组件的顺序 procedure TForm1.Tab(Sender: TObject; var Key: Word;Shift: TShiftState); Begin if (key=VK_Down) or (key=13) then SelectNext(ActiveControl,True,True); if key=VK_Up then SelectNext(ActiveControl,False,True); Key:=0; end;procedure TForm1.FormCreate(Sender: TObject); begin Edit_Name. OnKeyDown = Tab; Edit_Age .OnKeyDown = Tab; Edit_Adress . OnKeyDown = Tab; //.... end;
if key=#13 then Perform(CM_DialogKey,VK_Tab,0);
首先将Form的KeyPreview设为True,然后健入一下代码: procedure Tform1.formkeypress(Sender:Tobject;Var Key:Char); begin if key=#13 then begin key:=#0; perform(WM_NEXTDLGCTL,0,0);//移动到下一个控件 end else if (ActiveControl is TDbgrid) then //是在TDbgrid控件内 begin with TDbgrid(ActiveControl) Do if Selectedindex<(FieldCount-1) then Selectedindex:=Selectedindex+1 //移动到下一字段 else Selectedindex:=0; end; end;
if key=#13 then begin key:=0 selectnext(activecontrol,true); end;
Begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end
Shift: TShiftState);
begin
if Key = VK_Return then
begin
if Trim(DBedtJoinIn.Text) = '' then
begin
DBedtJoinIn.Perform(WM_LButtonDown, 0, 0);
DBedtJoinIn.Perform(WM_LButtonUp, 0, 0);
end
else begin
DBcmbxCetype.Perform(WM_LButtonDown, 0, 0);
DBcmbxCetype.Perform(WM_LButtonUp, 0, 0);
end;
end;
end;
//或一个通用的:记得Edit->Tab Order中各组件的顺序
procedure TForm1.Tab(Sender: TObject; var Key: Word;Shift: TShiftState);
Begin
if (key=VK_Down) or (key=13) then
SelectNext(ActiveControl,True,True);
if key=VK_Up then
SelectNext(ActiveControl,False,True);
Key:=0;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Edit_Name. OnKeyDown = Tab;
Edit_Age .OnKeyDown = Tab;
Edit_Adress . OnKeyDown = Tab;
//....
end;
Perform(CM_DialogKey,VK_Tab,0);
procedure Tform1.formkeypress(Sender:Tobject;Var Key:Char);
begin
if key=#13 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);//移动到下一个控件
end else
if (ActiveControl is TDbgrid) then //是在TDbgrid控件内
begin
with TDbgrid(ActiveControl) Do
if Selectedindex<(FieldCount-1) then
Selectedindex:=Selectedindex+1 //移动到下一字段
else Selectedindex:=0;
end;
end;
begin
key:=0
selectnext(activecontrol,true);
end;
begin
end;