In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

OnKeyDown

Foro de Xailer profesional en español
Responder
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

OnKeyDown

Mensaje por miguel »

Hola,
¿como puedo capturar la pulsación de una tecla?, para que ejecute un
código en cualquier formulario del proyecto.
Dentro de un formulario está claro la propagación del evento, pero para
todos los formulario me hago un lí­os, pues pensaba que que en un entorno
MDI/SDI con progamar el evento en la ventana principal serí­a suficiente,
pero no es asi.
Seguro que es mas facil que el lio que estoy montando.
Saludos. Miguel A. Torrellas
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

OnKeyDown

Mensaje por Xevi »

Miguel,
Si lo que necesitas es que una tecla te sirva para TODA la aplicación, yo
utilizo SetKey, como antes en Clipper.
SetKey( VK_F2,, {|| xFrmAgenda() } )
Un Saludo,
Xevi.
"Miguel A. Torrellas" <miguel@torrellas.net> escribió en el mensaje
news:46966d8a$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola,
>
> ¿como puedo capturar la pulsación de una tecla?, para que ejecute un
> código en cualquier formulario del proyecto.
>
> Dentro de un formulario está claro la propagación del evento, pero para
> todos los formulario me hago un líos, pues pensaba que que en un entorno
> MDI/SDI con progamar el evento en la ventana principal sería suficiente,
> pero no es asi.
>
> Seguro que es mas facil que el lio que estoy montando.
>
> Saludos. Miguel A. Torrellas
notelo
Mensajes: 54
Registrado: Sab Abr 28, 2007 2:06 pm

OnKeyDown

Mensaje por notelo »

Miguel,
si quieres un comportamiento estándar para una tecla en cualquier
formulario, define la acción en el método WMKeyDown.
Algo así­ (está escrito al vuelo):
CLASS TForm FROM XForm
PUBLIC:
METHOD WMKeyDown( nKey, nFlags )
ENDCLASS
METHOD WMKeyDown( nKey, nFlags )
CASE nKey == ...
...
RETURN 0
ENDCASE
RETURN Super:KeyDown( nKey, nFlags )
Saludos,
José Lalí­n
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

OnKeyDown

Mensaje por miguel »

Gracias Xevi, gracias José,
Me parece mas elegante la manera que indica José. En concreto lo que
pretendí­a es llamar a Calculator() desde cualquier punto de la
aplicación, gracias a vuestra ayuda ya está conseguido.
Saludos. Miguel A. Torrellas
Responder