Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-09-2007
Paradiso Paradiso is offline
Miembro
 
Registrado: jun 2004
Posts: 68
Poder: 20
Paradiso Va por buen camino
Atajos de Teclado en Formularios MDIForm

Hola A Todos
Pregunta: No puedo hacer que el formulario principal de mi aplicacion.capture una tecla pulsada
considerando que el formulario principal tiene en true la propiedad keypreview
y el mismo es MDIForm.

Gracias.

Responder Con Cita
  #2  
Antiguo 14-09-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Donde la estás intentando capturar ? En el evento OnKeyPress, en el evento OnKeyDown, o mediante un TActionManager ?
__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 17-09-2007
Paradiso Paradiso is offline
Miembro
 
Registrado: jun 2004
Posts: 68
Poder: 20
Paradiso Va por buen camino
En el Evento OnKeyDown.

Saludos...
Responder Con Cita
  #4  
Antiguo 17-09-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Pues te pediría que pusieras un poco de tu código, ya que a mi no me dá problemas de ningún tipo.

Está claro que tienes que poner la rutina del evento OnKeyDown que quieres capturar en tu form principal que es MDIForm.

Y si tienes la propiedad KeyPreview a True de dicho MDIForm, antes de comprobar ningun otro evento de teclado te debe de entrar a dicho procedimiento OnKeyDown del Form principal (el MDIForm). Podrías comprobarlo también con el Debug, a ver si realmente te está entrando a dicho procedimiento. A lo mejor estás buscando donde no es y descativas algo o cambias algo en otra parte de tu código.

Lo dicho, si pudieras poner algo de tu código sería mejor.

Saludos,
__________________
Piensa siempre en positivo !
Responder Con Cita
  #5  
Antiguo 18-09-2007
Paradiso Paradiso is offline
Miembro
 
Registrado: jun 2004
Posts: 68
Poder: 20
Paradiso Va por buen camino
Bueno Mira, lo he debuggeado y efectivamente no pasa por el evento onkeyDown :

propiedad KeyPreview del Formulario MdiForm en True.


procedure TfmPrincipal.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin

if key = vk_f1 then showmessage('Hola Mundo');


end;

end.


lo que si les comento, que yo tengo un componente image con un jpg cubriendo todo el area cliente del formulario principal, de todas formas, lo puse en visible false y asi y todo no entra al evento FormKeyDown.

lo que yo necesito hacer es que el usuario apretando las teclas de funcion acceda a las operaciones mas comunes de mi sistema.

saludos.
Responder Con Cita
  #6  
Antiguo 18-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
paldave Va por buen camino
Claro, lo que sucede es que al ser el formulario un MDIForm no captura las pulsaciones.
Lo que debes utilizar es un TActionList, como lo describo en este hilo.
Responder Con Cita
  #7  
Antiguo 18-09-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Efectivamente tienes razón. Lo acabo de comprobar y no funciona.

Lo que pasa es que yo lo tenía sobre un MDIChild con Frames y pensaba que funcionaría de igual manera con el formulario principal.

Consultado la ayuda de Delphi :

Cita:
If KeyPreview is true, keyboard events occur on the form before they occur on the active control. (The active control is specified by the ActiveControl property.) If KeyPreview is false, keyboard events occur only on the active control.
Lo que te va a provocar que pongas el KeyPreview a True es que se ejecute el evento OnKeyDown del Form que contiene el control activo antes que el evento OnKeyDown del propio control activo.

Tendrás que utilizar entonces un TActionManager que seguro que si funciona.

Si necesitas más ayuda al respecto de la utilización de este componente puedes consultar la propia ayuda del foro, o si tienes cualquier duda en concreto vuelve a preguntar por aqui.

__________________
Piensa siempre en positivo !
Responder Con Cita
  #8  
Antiguo 18-09-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
... se me adelantaron mientras estaba escribiendo
__________________
Piensa siempre en positivo !
Responder Con Cita
  #9  
Antiguo 18-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
paldave Va por buen camino
Vamos, vamos, A escribir más rápido!!!
Responder Con Cita
  #10  
Antiguo 20-09-2007
Paradiso Paradiso is offline
Miembro
 
Registrado: jun 2004
Posts: 68
Poder: 20
Paradiso Va por buen camino
Muchas Gracias!!!

Pruebo y Comento.

Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
stay on front + mdiform? Gagiel Varios 2 05-07-2007 09:14:23
Grafico en mdiForm Io Gráficos 1 19-07-2006 00:16:40
Duda con MDIForm ronson OOP 6 17-12-2004 16:29:30
Imagen de fondo en un MDIform Fextivo Gráficos 2 16-03-2004 18:25:49
Imagen en un mdiform jjh Varios 1 30-06-2003 11:27:42


La franja horaria es GMT +2. Ahora son las 11:16:39.


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