Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Teclas F!,F2,F3 etc (https://www.clubdelphi.com/foros/showthread.php?t=1284)

tulio 10-06-2003 12:31:57

Teclas F!,F2,F3 etc
 
Buen dia Foro

Lo que quiero hacer es cuando un usuario presione la tecla F1 se dispare el onclick de un boton, si presiona F2 que se ejecute el onclick de otro boton, etc.
Pienso que debe ser algo sencillo pero no me sale.

Muchas gracias por adelantado y saludos

tulio

__cadetill 10-06-2003 13:39:13

para hacer esto te recomiendo que le eches una ojeada al componente TActionList (de Delphi 5 para adelante). En el puedes crearte tus acciones y asignarle ShortCuts

Si tienes dudas de su manejo, pregunta por aqui ;)

tulio 10-06-2003 17:24:51

Gracias Cadetill

lo voy a probar

saludos tulio

jfontane 10-06-2003 18:03:27

Otra forma seria programar el evento Onkeydown (algo asi) del objeto al que le vas a hacer F3 o F4 o Floque sea.

este evento tiene como argumento key como Onkeypress pero a diferencia que este es de tipo word.
El codigo seria algo asi.


if (key=VK_F3) then button1.onclick(sender)
else if (key=VK_F4) then button2.onclick(sender);

esto lo use yo y anda al pelo.

Salu2

tulio 11-06-2003 12:48:32

Gracias Jfontane

tu ejemplo anda, el problema es que tenes que estar parado sobre el boton que queres que tome la tela F1, F2 etc. Si en un form tenes 5 botones que queres dispar con las 5 teclas F1......
no andaria.

saludos tulio

igest2000 11-06-2003 15:00:30

BUenas!!
La solución de programar el OnKeyDOwn, como has dicho no funciona a menos que estes en el componente sobre el que la has programado, por ello lo que puedes hacer es programar un evento que sirva para todos en un procedure aparte y asignarlo al OnKeyDown de todos los elementos.....

tulio 11-06-2003 16:41:37

Gracias igest2000

Probe esa solucion y anda

Saludos tulio

__cadetill 11-06-2003 16:48:27

Cita:

Posteado originalmente por igest2000
La solución de programar el OnKeyDOwn, como has dicho no funciona a menos que estes en el componente sobre el que la has programado
Bueno, si programas el OnKeyDown del componente TForm y pones la propiedad KeyPreview a true, si que funciona

tulio 11-06-2003 18:32:09

Gracias Cadetill

Asi quedo como yo queria

saludos tulio

Pd. Gracias a todos los que se interesaron en el tema.


La franja horaria es GMT +2. Ahora son las 11:57:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi