Interceptar la pulsación de teclas en un formulario

5961 vistas

Para poder capturar la pulsación de las teclas en todo el formulario, tendremos que poner a true la propiedad KeyPreview de éste.

Luego tendremos que codificar el/los eventos deseados:
- OnKeyDown / OnKeyUp: para ver todas las teclas (incluso los clics del ratón)
- OnKeyPress: Para las teclas simples (máquina de escribir) incluida la tecla ESC.

Ejemplo: control de la tecla ESC mediante el evento OnKeyPress:



delphi
  1. procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
  2. begin
  3.   // la pulsación de ESC emite el carácter #27.
  4.   if (Key = Char(VK_ESCAPE)) then
  5.     Close ;
  6. end;



Para las teclas extendidas (F1, F2,....) hay constantes definidas en la unidad Windows.pas y epiezan todas por "VK_" de Virtual Key. En la ayuda de Delphi (Win32 Programmer's Reference) encontraremos todos los códigos si buscamos Virtual-Key Codes.