Ligando as Setas, ESC e Enter !!!

10/03/2003

0

Como eu já muitas pessoas solicitarem procedimentos para usar o Enter no lugar do Tab para pular de campo, ligar as Setas e fechar o form usando o Esc; e muitos que enviaram respostas eram respostas não funcionais, que apenas quebravam galhos...

Eu estou colocando o cód para fazer isso:

Declare a procedure no form principal da aplicação:

procedure TFormPrincipal.ProcessaMsg(var Msg: TMsg; var Handler: Boolean);
begin
     if (Msg.message = WM_KEYDOWN) then
        if not (Screen.ActiveControl is TCustomMemo) and
           not (Screen.ActiveControl is TButtonControl) then begin
             if not (Screen.ActiveControl is TCustomControl) then begin
                if (Msg.wParam = VK_Down) then
                   Msg.wParam:= VK_Tab;

                if (Msg.wParam = VK_UP) then begin
                   Msg.wParam:= VK_CLEAR;
                   Screen.ActiveForm.Perform(WM_NextDlgCtl,1,0);
                end;
                if (Msg.wParam = VK_Escape) and 
                  not (Screen.ActiveForm is TNome_do_form_Principal) then
                   Screen.ActiveForm.Close;
             end;
             if (Msg.wParam = VK_Return) then
                Msg.wParam:= VK_Tab;
        end;
end;


Agora, no evento OnCreate do form principal use:

Application.OnMessage:= formPrincipal.ProcessaMsg;


E pronto!!!

Quem quizer fazer o download da procedure em arquivo
texto vá em:
www.apocaliptica.hpg.com.br/hackz/delphi/

Até mais.


Eniorm

Eniorm

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar