Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-03-2007
almudena_13 almudena_13 is offline
Registrado
 
Registrado: feb 2007
Posts: 6
Poder: 0
almudena_13 Va por buen camino
Red face Capturar combinaciones de teclas tipo CTRL + A

Hola A Todos!

Muchas gracias de antemano!

He estado leyendo mensajes por los foros para ver si encuentro la solución a mi problema, pero debo ser un poco cortita porque no me he enterado aun....
Pido perdón si la solución ya estaba escrita y no he sabido verla....

Bueno, os cuento...

Tengo que capturar combinaciones de teclas tipo CTRL+M, CTRL+N, etc...

Tengo definido el siguiente código:
procedure TfrmMIEMess.FormActivate(Sender: TObject);
begin
SaveMessageHandler := Application.OnMessage;
Application.OnMessage := MyMessageHandler;
end;

donde MyMessageHandler es el método que voy a utilizar para capturar las teclas, y de hecho ya las estoy capturando, pero.... Solo puedo hacerlo de una en una.... no se si me explico...
Mi metodo esta definido de la siguiente manera:
procedure TfrmMIEMess.MyMessageHandler(var Msg: TMsg; var Handled: Boolean);
Donde Msg.message me dice si se ha producido un WM_KEYDOWN o WM_KEYUP y Msg.wParam me indica la tecla que se ha pulsado, pero.... ¿que puedo hacer en este caso que se estan pulsando dos teclas?
¿Estoy utilizando un metodo equivocado? ¿Se puede hacer algo con este que ya tengo definido?

Hace unos dias ya escribi pidiendo ayuda con un tema de menús y como dije en ese momento, esta aplicación me ha caido ahora, ha ido pasando de mano en mano y el codigo es totalmente chapucero con lo que no entiendo la mitad de las cosas. (aparte que mis conocimientos de Delphi no es que sean muy extensos)

Os agradeceria enormemente cualquier ayuda que pudierais ofrecerme.

¡y disculpad por el pedazo de mensaje que estoy escribiendo!

Muchas gracias!

almudena..
Responder Con Cita
  #2  
Antiguo 02-03-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
En el evento WM_KEYDOWN o WM_KEYUP, puedes comprobar las teclas que están pulsada. Por ejemplo:
Código Delphi [-]
  if GetKeyState(VK_SHIFT) < 0 then
    // Esta pulsada la tecla mayusculas
  if GetKeyState(VK_CONTROL) < 0 then
    // Esta pulsada la tecla Ctrl
Así si queremos detectar, por ejemplo, que se ha pulsado Ctrl+E en el evento WM_KEYDOWN comprobamos que la tecla es la 'E' y entonces utilizando GetKeyState comprobamos que la tecla Ctrl esta también pulsada.
Responder Con Cita
  #3  
Antiguo 02-03-2007
almudena_13 almudena_13 is offline
Registrado
 
Registrado: feb 2007
Posts: 6
Poder: 0
almudena_13 Va por buen camino
Capturar combinaciones de teclas tipo CTRL + A

Muchas gracias!

Lo probare y te cuento....
Responder Con Cita
  #4  
Antiguo 02-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
¿Qué versión de delphi usas?

Mira si tienes un TActionList en la paleta de componentes (en las 3 primeras pestañas debe estar), puedes indicar a cada TAction una combinación de teclas y lo que debe ejecutar cuando se pulse cada una de ellas.

Así te olvidas de esa gestión de teclas.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 02-03-2007
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
Y aún si no cuenta con esa componente, podría repensar si no hay una forma más directa. Es decir, por ejemplo un MenuItem tiene su propiedad ShortCut que permite establecer la combinación de teclas.

// Saludos
Responder Con Cita
  #6  
Antiguo 05-03-2007
almudena_13 almudena_13 is offline
Registrado
 
Registrado: feb 2007
Posts: 6
Poder: 0
almudena_13 Va por buen camino
Thumbs up Capturar combinaciones de teclas tipo CTRL + A

Cita:
Empezado por roman
Y aún si no cuenta con esa componente, podría repensar si no hay una forma más directa. Es decir, por ejemplo un MenuItem tiene su propiedad ShortCut que permite establecer la combinación de teclas.

// Saludos

Muchas gracias a todos por las contestaciones!
y siento haber tardado tanto en contestar pero entre el finde y demas cosas que he tenido que hacer esta mañana pues eso....

El tema es que precisamente tengo un menu y las teclas que quiero capturar son shortcuts de este menu, lo que pasa es que tengo otras funciones entre medias que estan capturando todas las teclas y entonces "inutilizan" mi menu...

Es un follon un poco extraño... Y no se si me he explicado....
Voy a probar con el TActionList y os cuento, aunque no sera rapido porque ahora me han dicho que deje lo de delphi para hacer otra cosa....


En fin, muchisimas gracias a todos!!

pd: leo las consultas del foro para ver si puedo ayudar a alguien pero soy muy nueva en delphi y no se hacer nada, jooooo....

pd2: alguien pregunto que version de delphi utilizo pues es la 7...

besitos!
almudena..
Responder Con Cita
  #7  
Antiguo 11-11-2015
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
Thumbs up Mil gracias después de 10 años

Amigos: mil gracias después de 10 años!!! resulta que encontré aquí la solución a uno de mis problemas. Gracias.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Bloquear Combinaciones de Teclas. D-MO Varios 6 24-11-2006 03:25:10
Enviar combinaciones de teclas LordVermiis API de Windows 4 08-06-2006 17:57:43
Problemas al capturar teclas Dexter182 Varios 2 09-10-2005 22:36:12
Quitar Combinaciones De Teclas gulder API de Windows 4 21-04-2005 15:02:34
Capturar teclas en edit sur-se OOP 10 16-07-2004 13:25:17


La franja horaria es GMT +2. Ahora son las 05:24:42.


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