Desabilitando a tecla TAB

Delphi

01/11/2005

Bom dia amigos:

Gostaria de saber se é possivel e como fazer para desabilitar a tecla ´TAB´ de um determinado Form ou de toda a aplicação.
Isto tem como objetivo forçar o usuário a utilizar o ´enter´ para passar o foco de um dbedit para outro.

Grato


Zekas


Zekas

Zekas

Curtidas 0

Respostas

Adriano_servitec

Adriano_servitec

01/11/2005

Ae amigo tente essa procedure ai

procedure TForm1.MudarComEnter(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);
VK_TAB: Msg.message:=0;
end;
end;
end;
end;

e no events oncreate do seu form chame-o assim:
Application.OnMessage := MudarComEnter;

Declare a procedure no type para nao dar erro de compilacao

procedure MudarComEnter(var Msg: TMsg; var Handled: Boolean);

Flw
Testa ai e ve se funciona

Obs: nao ah nessecidade de deixar a propriedade keypreview do seu form como true

Agora se vc usar o evets onkeypress do form por exempo para a tecla ESC para retornar ai sim ativa o onkeypress

Vai ai tambem o codigo do ESC
if key = #27 then
begin
key := 0;
Perform(WM_NEXTDLGCTL,1, 0);
end;

Abraços
T+


GOSTEI 0
POSTAR