Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2004
Sick boy Sick boy is offline
Miembro
 
Registrado: may 2003
Ubicación: Cantabria
Posts: 245
Poder: 21
Sick boy Va por buen camino
Controlar pulsacion de una tecla desde toda la aplicacion

Hola,

Tengo una aplicacion MDI, y me gustaria poder controlar la pulsacion de una tecla (F10, por ejemplo), desde toda la aplicacion, sin tener que implementar el evento OnKeyDown en todos los forms.

Estoy tratando de que esa pulsacion se controle desde el MDI principal, pero cuando se carga otro form, las pulsaciones de las teclas hacen saltar el evento del form hijo.

El tema de herencia visual ya no me es posible, ya que las forms hijas ya estan todas creadas, y ahora sería un poco complejo cambiar todo.

He estado investigando sobre el tema de los hooks de teclado, pero no se si será la mejor solucion al problema.

Espero vuestras sugerencias, un saludo
Responder Con Cita
  #2  
Antiguo 21-05-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Puedes hacerlo registrando "HotKeys", mediante la WinApi RegisterHotKey pero del pasandole el Handle de la aplicación.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 21-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Otra forma de hacer esto es colocar una componente TActionList en el formulario principal asignándole a la acción que desees la tecla F10 como HotKey. Si desconoces el uso de esta componente tengo entendido que en la página del amigo cadetill hay un ejemplo de su uso.

// Saludos
Responder Con Cita
  #4  
Antiguo 21-05-2004
Sick boy Sick boy is offline
Miembro
 
Registrado: may 2003
Ubicación: Cantabria
Posts: 245
Poder: 21
Sick boy Va por buen camino
Gracias a los dos.

Ya lo he resuelto, con la winapi, y funciona como pretendia.

Tambien he visitado la pagina de cadetill, pero me pareció más facil el metodo que proponia nuestro com.ar
Quizas deba investigar un poco mas el TActionList

Gracias, y un saludo a todos
Responder Con Cita
  #5  
Antiguo 21-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Sick boy
Quizas deba investigar un poco mas el TActionList
Un ejemplo rápido:

1. Agregas la componente TActionList
2. Das doble click sobre ella para abrir el editor de acciones
3. En el editor de acciones agregas una con el botón "New Action"
4. En las propiedades de la nueva acción, en el inspector de objetos, asignas a la propiedad ShortCut la tecla deseada.
5. Das doble click sobre la acción para generar el código de su evento OnExecute donde colocas lo que desees hacer cuando se presione la tecla que asignaste a ShortCut.

// Saludos
Responder Con Cita
  #6  
Antiguo 21-05-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Digamos que "mas fácil" es utilizar el TActionList, yo como trabajo con versiones viejas de delphi, no estoy familiarizado a usarlo. Pero te recomiendo lo que sugiere Román.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:12:23.


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
Copyright 1996-2007 Club Delphi