Página 1 de 1
OnKeyDown
Publicado: Jue Jul 12, 2007 8:05 pm
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
OnKeyDown
Publicado: Jue Jul 12, 2007 10:56 pm
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
OnKeyDown
Publicado: Jue Jul 12, 2007 11:28 pm
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
OnKeyDown
Publicado: Vie Jul 13, 2007 9:18 am
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