Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dhonathas felix

[Resolvido] Teclas para atalho delphi 7

Recommended Posts

Olá boa tarde a todos

Duvida Iniciante

esto querendo aprender como fazer uma tecla de atalho no Delphi ex:Botão salvar atalho : Ctrl+S e quldo eu pressionar essa tecla funcionar exe: Apertei Ctrl+s e salvou

Muito Obrigado a todos pela Atenção

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá boa tarde a todos

Duvida Iniciante

esto querendo aprender como fazer uma tecla de atalho no Delphi ex:Botão salvar atalho : Ctrl+S

Muito Obrigado a todos pela Atenção

:D

 

Caro Amigo,

 

Primeiro habilite a propriedade KeyPreview do Form para true, em seguida utilize o evendo OnKeyDown e faça o seguinte teste

 

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if (Shift = [ssCtrl]) and (Key = 84) then

showmessage('Pressionado Control + S');

end;

 

Perceba que a Variavel Shift faz a leitura da Tecla de Função e a variavel Key faz a leitura do código decimal do Caracter, estou enviando uma link dos caracteres asc´s.

 

http://www.fcfrp.usp.br/dfq/Fisica/Tabelas/ASCII.pdf

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá meu caro,

Você pode fazer também pelo objeto ApplicationEvents que fica na aba Additional (segunda aba da esquerda para direita).

 

Ao colar o objeto no projeto adicione no evento OnMessage do mesmo o código abaixo:

 

procedure TForm1.AppEventMessage(var Msg: tagMSG; var Handled: Boolean);

Var Shift : TShiftState;

   Key : Word;

Begin

   If Screen.ActiveForm = Self Then

       Case Msg.Message Of

           WM_KeyDown, WM_SysKeyDown : Begin

               Key := Msg.wParam;

               Shift := KeyDataToShiftState( Msg.lParam );



               {Combinação Fecha Programa (Alt+F4)}

               If (Shift = [ssAlt]) And (Key = VK_F4) Then Begin

                   Application.Terminate;

                   Handled := True;

                   Exit;

               End;



               {Combinação (Alt+F5)}

               If (Shift = [ssAlt]) And (Key = VK_F5) Then Begin

                   {Seu Código}


	    Handled := True;

                   Exit;

               End;



               {Combinações (Ctrl+O) ou (Ctrl+T)}

               If ((Shift = [ssCtrl]) And (Key = Ord('O'))) Or ((Shift = [ssCtrl]) And (Key = Ord('T'))) Then Begin

                   {Seu Código}

                   Handled := True;

               End;



               {Combinação Salvar Como (Ctrl+Shift+S)}

               If (Shift = [ssCtrl, ssShift]) And (Key = Ord('S')) Then Begin

                   {Seu Código}
                   Handled := True;

               End;


               {Combinação Salvar (Ctrl+S)}

               If ((Shift = [ssCtrl]) And (Key = Ord('S'))) And TabMain.Visible Then Begin

                   {Seu Código}

                   Handled := True;

               End;





               Case Key Of

                   {Tecla F2 pressionada}

                   VK_F2 : Begin

                       {Seu Código}

                       Handled := True;

                   End;



                   {Tecla Esc pressionada no Edit1 }

                   VK_ESCAPE : Begin

                       If ActiveControl = Edit1 Then Begin

                           Close;

                       End;

                       Handled := True;

                   End;



               End;

           End;

       End;

End;

A variável Shift armazena a tecla que está sendo segurada e a variável Key a que foi pressionada.

Repare que adiciono Handled:= True em todas as açoẽs. Isto é para que ele execute o meu código e descarte a tecla. Exemplo: quando eu quero atribuir um evento ao pressionar a tecla "A" em um edit, ele execute meu código e não digite A em seu conteúdo.

 

Utilize a variável ActiveControl para saber qual objeto está em foco.

Ex:

...
	If ActiveControl = Edit1 Then
		//Seu código
...

 

abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.