Qual a diferença entre o OnKeyDown e o OnKeyPress??

Delphi

17/02/2004

Pessoal desisto, à dias estou tentando obter uma resposta sobre um problema em minhas aplicações om o evento OnKeyDown e o Setfocus.

Agora gostaria de saber qual a diferença entre o evento OnKeyDown e o OnKeyPress..

No OnKeyPress como eu faria para utilizar as constantes VK_F1, VK_F2 e assim por diante?

Grato

Fausto


Faustoalves

Faustoalves

Curtidas 0

Melhor post

Faustoalves

Faustoalves

17/02/2004

o OnKeyPress é utilizado para manipular o pressionamento de uma única tecla. [F2] por exemplo. o OnKeyDown serve para manipular o pressionamento de um conjunto de teclas. [CTRL]+[C], [CTRL]+[SHIFT]+[B] por exemplo



GOSTEI 2

Mais Respostas

Logado

Logado

17/02/2004

Naum sei, mas creio eu q o OnKeyPress deve ser o evento acionando enquando se está precionando a tecla(mantendo-a precionada) e onKeydown o evento de apertar a tecla só com um toque normalmente


GOSTEI 0
Fabio.hc

Fabio.hc

17/02/2004

Completando a informação.

[b:31748c0515]OnKeyDown[/b:31748c0515]: ocorre quando o usuário pressiona uma tecla.
Ex: Este edit exibirá o texto após o caracter digitado quando o usuário pressionar qualquer tecla.
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);
begin
   Edit1.Text:=´Uma tecla foi pressionada´;
end;


[b:31748c0515]OnKeyPress[/b:31748c0515]: ocorre quando o usuário pressiona uma tecla que corresponda a um caracter ASCII.
Ex: Este edit exibirá o texto após o caracter digitado quando o usuário pressionar qualquer tecla ASCII.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
   Edit1.Text:=´Uma tecla ASCII foi pressionada´;
end;


[b:31748c0515]OnKeyUp[/b:31748c0515]: ocorre quando o usuário solta uma tecla.
Ex: Este edit exibirá o texto quando o usuário liberar uma tecla.
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;  Shift: TShiftState);
begin
   Edit1.Text:=´Uma tecla foi solta´;
end;



GOSTEI 0
Pantoja

Pantoja

17/02/2004

me explica ai Fabio ... me diz a diferença entre ´uma tecla foi pressionada´ e ´ Uma tecla ascii foi pressionada ´...

nao entendi !!! :lol:


GOSTEI 0
Fvilela

Fvilela

17/02/2004

AE!!
E como eu faço para mostrar qual tecla foi pressionada passando o key como parametro;
ex.
if (ssCtrl in Shift) and (ssShift in Shift) then
begin
... Foi pressionado Ctrl + Shift + (A Key passada como parametro no
evento)
end;


Valew!!!!

Fernando


GOSTEI 0
Fabio.hc

Fabio.hc

17/02/2004

[quote:95fb4a44f7=´Professor Algoritmo´]me explica ai Fabio ... me diz a diferença entre ´uma tecla foi pressionada´ e ´ Uma tecla ascii foi pressionada ´...

nao entendi !!! :lol:[/quote:95fb4a44f7]

Pega este exemplo que passei e testa um de cada vez, e pressiona as teclas e veja o resultado.
Ex:
OnKeyPress:
´F1´ - não passa.
´A´ - passa.


GOSTEI 0
Fabio.hc

Fabio.hc

17/02/2004

AE!! E como eu faço para mostrar qual tecla foi pressionada passando o key como parametro; ex. if (ssCtrl in Shift) and (ssShift in Shift) then begin ... Foi pressionado Ctrl + Shift + (A Key passada como parametro no evento) end; Valew!!!! Fernando



Ex: Para vc pegar Ctr+Shift+A
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
   if (ssCtrl in Shift) and (ssShift in Shift) then
      if key = 65 then
         ShowMessage(´... Foi pressionado Ctrl + Shift + ´+chr(65)+´ (A Key passada como parametro no evento)´);
end;

Obs: O primeiro IF só passa se for pressionado Ctrl + Shift, o segundo IF vc testa o Key que vc quer usar.


GOSTEI 0
POSTAR