GARANTIR DESCONTO

Fórum As tecla denovo.. #353592

13/02/2008

0

Dei uma pesquisada e não achei no forum,alguem sabe como capturar duas teclas pressionadas junta?
Valeu.


Kroki

Kroki

Responder

Posts

13/02/2008

Djjunior

1º em um form novo crie 2 edits 1 memo
2º a propriedade keyPreview do form coloque true
3º coloque o seguinte código no keyDown do form:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 Edit1.Text := chr(key);

 if      (ssShift  in Shift)  and (ssAlt    in Shift) then Edit2.Text := ´ ssShift  ssAlt   ´
 else if (ssAlt    in Shift)  and (ssCtrl   in Shift) then Edit2.Text := ´ ssAlt    ssCtrl  ´
 else if (ssCtrl   in Shift)  and (ssLeft   in Shift) then Edit2.Text := ´ ssCtrl   ssLeft  ´
 else if (ssLeft   in Shift)  and (ssRight  in Shift) then Edit2.Text := ´ ssLeft   ssRight ´
 else if (ssRight  in Shift)  and (ssMiddle in Shift) then Edit2.Text := ´ ssRight  ssMiddle´
 else if (ssMiddle in Shift)  and (ssDouble in Shift) then Edit2.Text := ´ ssMiddle ssDouble´
 else if (ssDouble in Shift)  and (ssShift  in Shift) then Edit2.Text := ´ ssDouble ssAlt´
 else if  ssShift  in Shift then Edit2.Text := ´ ssShift ´
 else if ssAlt    in Shift then Edit2.Text := ´ ssAlt   ´
 else if ssCtrl   in Shift then Edit2.Text := ´ ssCtrl  ´
 else if ssLeft   in Shift then Edit2.Text := ´ ssLeft  ´
 else if ssRight  in Shift then Edit2.Text := ´ ssRight ´
 else if ssMiddle in Shift then Edit2.Text := ´ ssMiddle´
 else if ssDouble in Shift then Edit2.Text := ´ ssDouble´
 else Edit2.Text := ´´;
end;


ademais são as outras combinações do shift (deve dar umas 49 hehe) be happy


Responder

Gostei + 0

13/02/2008

Djjunior

ops errei... são +/- 140 já que podem haver até 3 ´shifts´´precionados ao mesmo tempo (shift + ctrl + alt)...

o único inconveniente que notei é que o tab não é capturado por essa função


Responder

Gostei + 0

13/02/2008

Kroki

Não é bem isso que preciso,preciso capturar quando for precionado ´h´e´j´ ao mesmo tempo.Valeu pelo esforço.


Responder

Gostei + 0

14/02/2008

Kroki

Queimei um pouco de retina na Net e achei oque queria:
...
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If ((GetKeyState(ord(´H´))AND 128)=128)and((GetKeyState(ord(´J´))AND 128)=128)
then ShowMessage(´H e J Pressionadas´);
end;

end.

...


Responder

Gostei + 0

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

Aceitar