FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
Donde la estás intentando capturar ? En el evento OnKeyPress, en el evento OnKeyDown, o mediante un TActionManager ?
__________________
Piensa siempre en positivo ! |
#3
|
|||
|
|||
En el Evento OnKeyDown.
Saludos... |
#4
|
||||
|
||||
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 ! |
#5
|
|||
|
|||
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. |
#6
|
||||
|
||||
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. |
#7
|
||||
|
||||
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:
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 ! |
#8
|
||||
|
||||
... se me adelantaron mientras estaba escribiendo
__________________
Piensa siempre en positivo ! |
#9
|
||||
|
||||
Vamos, vamos, A escribir más rápido!!!
|
#10
|
|||
|
|||
Muchas Gracias!!!
Pruebo y Comento. Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
stay on front + mdiform? | Gagiel | Varios | 2 | 05-07-2007 08:14:23 |
Grafico en mdiForm | Io | Gráficos | 1 | 18-07-2006 23:16:40 |
Duda con MDIForm | ronson | OOP | 6 | 17-12-2004 15:29:30 |
Imagen de fondo en un MDIform | Fextivo | Gráficos | 2 | 16-03-2004 17:25:49 |
Imagen en un mdiform | jjh | Varios | 1 | 30-06-2003 10:27:42 |
|