Enter - para o proximo campo |
Top Previous Next |
|
======================================================= 1ª maneira =======================================================
uses Messages;
OnFormKeyDown;
If Key=#13 then Begin Key:=#0; Perform(WM_NextDlgCtl,0,0); end;
Perform(WM_NextDlgCtl,-1,0); // volta foco
======================================================= 2ª maneira =======================================================
no evento OnKeyPress do componente coloque o seguinte:
if key = #13 then begin key := #0; Perform(CM_DialogKey, VK_TAB, 0); end;
======================================================= 3ª = No projeto todo com 1 código (A MELHOR) =======================================================
private procedure EnterTAB(var Msg: Tmsg; var Handled : Boolean);
procedure TForm1.EnterTAB(var Msg: Tmsg; var Handled: Boolean); begin if Msg.message = WM_KEYDOWN then if Msg.wParam = VK_RETURN then begin Msg.wParam := 0; Keybd_event(VK_TAB,0,0,0); end; end;
procedure TForm1.FormCreate(Sender: TObject); begin Application.OnMessage := EnterTAB; end;
======================================================= 4ª maneira =======================================================
SelectNext(Sender as tWinControl, True, True );
======================================================= 5ª maneira =======================================================
SendMessage(Form1.Handle,WM_NEXTDLGCTL,0,0);
======================================================= 6ª para o Projeto inteiro novamente ======================================================= procedure DoEnterAsTab(var Msg: TMsg; var Handled: Boolean);
Ai é só vc fazer o Application.OnMessage := DoEnterAsTab;
procedure TForm1.DoEnterAsTab(var Msg: TMsg; var Handled: Boolean); begin if Msg.message = WM_KEYDOWN then begin if Msg.wParam = VK_RETURN then begin keybd_event(VK_TAB, 0, 0, 0); Handled := true; end; end; end;
|