Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Evente OnKeyPress (https://www.clubdelphi.com/foros/showthread.php?t=10391)

bbjb 18-05-2004 18:36:44

Evente OnKeyPress
 
Buenas!!!

El evento OnKeyPress ¿es capaz de capturar las teclas de función F1,F2,F3...?, porque cuando pulso cualquier otra tecla se activa este evento pero para estas otras no responde.


Un saludo :p

eduarcol 18-05-2004 18:39:18

No se si sera capazde capturarlas pero yo lo hago con el evento KeyUp y lascpomparo con las variables

VK_F1
VK_F2 ...

bbjb 18-05-2004 18:45:56

Gracias
 
No había pensando en utilizar este evento.

Lo he probado y ha ido a las mil maravillas, muchas gracias

__cadetill 18-05-2004 18:54:50

Las teclas de función no tienen Press, sólo tienen Up y Down. De hecho, sólo tienen Press las teclas de la "máquina de escribir", las demás has de controlarlas mediante uno de lo otros 2 eventos (Up y Down).

También decirte que, a partir dela versión 5 de Delphi (creo recordar), tienes el componente TActionList que puede facilitarte mucho esta tarea y organizarás algo más el código (en mi web tienes un "mini manual" de uso con un ejemplo).

Por otro lado, no te aconsejo que uses las teclas estándares de Windows (almenos las más conocidas) para cosas que no sean precisamente esas ya que esto confunde mucho a los usuarios

F1 = Ayuda
F2 = Edición
F3 = Búsqueda
......

Espero te sirva

bbjb 19-05-2004 17:23:17

Cadetill eres un makina,

Por cierto, ¿te dedicas a la docencia? porque eres buenisimo en tus explicaciones

__cadetill 19-05-2004 17:30:16

Cita:

Empezado por bbjb
Por cierto, ¿te dedicas a la docencia? ....

jejejeje, pues no, pero sí me he dedicado durante 1 año :)

Cita:

Empezado por bbjb
...porque eres buenisimo en tus explicaciones

bueno, eso va a gustos y, sólo cuando hay tiempo pa "explayarse" explicando ;)

De todas maneras, gracias por los alagos :o

PD: pero que no se repita que al final me los creeré :D :D

bbjb 21-05-2004 09:26:25

Cadetill, me ha surgido una pregunta después de leer el manual sobre ActionList que tiene en tu página web

Cita:

"También decirte que, a partir dela versión 5 de Delphi (creo recordar), tienes el componente TActionList que puede facilitarte mucho esta tarea y organizarás algo más el código (en mi web tienes un "mini manual" de uso con un ejemplo)."
Yo necesito centralizar la función que me detecte que tecla se ha pulsado para saber si esta ha sido una de función.
Esa misma tecla la recibiría la función como parametro.
Para ello tendría que pasar el valor Key (Word) del evento OnKeyUp de cada objeto. Aplicar esto con un ActionList me está liando un poco.

Si establezco en el ActionList la función que hace dicha comprobación y ligo esta acción a los controles deseados mediante la propiedad Action de los mismos, como paso el parametro Key para saber la tecla pulsada.

Uff!! menudo lio, quizás no me haya explicado muy bien. Si tienes alguna duda pregunta,pregunta por favor...

__cadetill 21-05-2004 13:05:50

Cita:

Empezado por bbjb
Yo necesito centralizar la función que me detecte que tecla se ha pulsado para saber si esta ha sido una de función.

Para esto utiliza el evento Up o Down del formulario, no de los componentes, y pon la propiedad (del formulario) KeyPreview a true

Cita:

Empezado por bbjb
Aplicar esto con un ActionList me está liando un poco.

Un TActionList no está pensado para controlar multitud de teclas en una misma acción (aunque se puede hacer mediante las SecundaryShortCuts). Lo que pasa es que, si variará la acción dependiendo de la tecla pulsada... con éste método no sabrás que tecla se ha pulsado (para ellos tendrías que crear una acción para cada cosa a realizar)

Cita:

Empezado por bbjb
Si establezco en el ActionList la función que hace dicha comprobación y ligo esta acción a los controles deseados mediante la propiedad Action de los mismos, como paso el parametro Key para saber la tecla pulsada.

contestado arriba, no tienes manera de saberlo (creo). Soloción, una TAction por acción a realizar o bien controlar el evento Up o Down del Form como te he comentado

Espero te sirva

bbjb 24-05-2004 18:17:55

Ok Cadetill, todo era tan fácil como poner la propiedad KeyPreview a True.

Muchas Gracias por todo.


La franja horaria es GMT +2. Ahora son las 04:03:19.

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