Trocando Tab por Enter

Delphi

27/10/2004

atualmente eu uso no evento onkeypress ou onkeydown o codigo #13 ou 13 em cada Tedit eu coloco o if com o codigo ascii e mando o setfocus no componente desejado

ou a seguinte procedure:

procedure Tfrm.TabComoEnter(var Msg: TMsg; var Handled: Boolean);
begin
  If not ((Screen.ActiveControl is TCustomMemo) or
  (Screen.ActiveControl is TCustomGrid) or
  (Screen.ActiveForm.ClassName = ´TMessageForm´)) then
  begin
  If Msg.message = WM_KEYDOWN then
  begin
  Case Msg.wParam of
  VK_RETURN,VK_DOWN : Screen.ActiveForm.Perform(WM_NextDlgCtl,0,0);
  VK_UP : Screen.ActiveForm.Perform(WM_NextDlgCtl,1,0);
  end;
  end;
  end;
end;


eu queria saber se com o componente applicationevents eu consigo pegar o evento de enter e mudar para tab (fazer uma coisa mais simples e prática).


Tap_pedroso

Tap_pedroso

Curtidas 0

Respostas

Gameiro

Gameiro

27/10/2004

Deixe a propriedade dor form keypreview=true.

E no onkeypress do form o seguinte código:

if (key=#13) then
begin
key:=0;
perform(Wm_nextDlgCtl,0,0)
end;

Espero ter ajudado, ate mais.


GOSTEI 0
Reginaldo174

Reginaldo174

27/10/2004

private
procedure Tab_Enter(var Msg: TMsg; var Handled: Boolean);

procedure TForm1.Tab_Enter(var Msg: TMsg; var Handled: Boolean );
begin
if MSg.message=WM_KeyDown then if Msg.wParam=VK_Return then keybd_event(VK_Tab,0,0,0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage:=Tab_Enter;
end;

Pronto, todo seu programa aceita ENTER como TAB Agora.


GOSTEI 0
POSTAR