PDA

Ver la Versión Completa : ShortCuts en TMenuItems


almudena_13
28-02-2007, 13:09:21
Hola!

Tengo un TMainMenu con elementos TMenuItems. A estos elementos les he asignado la propiedad ShortCut y cada uno de ellos tiene un valor diferente en esta propiedad. Mi problema es que cuando ejecuto mi aplicacion estos accesos rapidos que he definido no funcionan. No me hacen ni caso, ¿alguien sabe porque?¿Me falta definir alguna cosa?¿Alguien me puede echar una mano, por favor?

Muchisimas gracias!

almudena..

dec
28-02-2007, 13:14:48
Hola,

Yo acabo de hacer la prueba y todo va bien. Me pregunto si tratas de que las acciones correspondientes a cada acceso directo se ejecuten incluso si tu aplicación no tiene el foco del usuario... En este caso dichos accesos directos no funcionarían y los tiros tendrían que ir por otro lado.

almudena_13
28-02-2007, 13:31:30
Hola,

Muchas gracias por tu rapida respuesta... Tienes razon, he probado en un proyecto nuevo y si que me funcionan pero en mi aplicacion no. ¿Por que podra ser? Trato de ejecutarlos cuando mi aplicación tiene el foco.

No tengo ni idea de porque no me funciona....

En cualquier caso muchas gracias!

almudena..

dec
28-02-2007, 13:35:41
Hola,

¿Estás capturando en el formulario de tu aplicación algún evento "OnKeyPress", "OnKeyUp"? Si es así asegúrate de que en dichos eventos "se deje" pasar la tecla pulsada... no vaya a ser que se "capture" y por tanto el menú no se entere de nada... es lo que se me ocurre a bote pronto, vamos.

almudena_13
28-02-2007, 14:19:32
¡¡¡¡ Es eso !!!!

¡Muchisimas gracias! No habia caido en eso porque estoy modificando una aplicación "heredada" y aun no se muy bien como funciona. La verdad es que esta hecha un desastre, tiene mucho codigo que ya no se utiliza y muchas funciones que hacen lo mismo y estan repetidas. Esta aplicación ha ido pasando de mano en mano y ahora me ha tocado a mi....
El caso es que he visto esto:
procedure TfrmMIEMess.FormActivate(Sender: TObject);
begin
SaveMessageHandler := Application.OnMessage;
Application.OnMessage := MyMessageHandler;
end;

Donde MyMessageHandler es un procedimiento que trata de hacer algo (no se exactamente si capturarlas o dejarlas pasar) con las teclas ctrl+C, ctrl+V y ctrl+X. Pero por lo que se ve lo esta capturando todo. He comentado esa llamada y mi menu ahora funciona bien.....

Ahora me toca tratar de ver que hace realmente esa funcion y que me deje pasar las teclas que quiero para mi menu...

¡¡¡ Muchas gracias !!!

almudena..

Hola,

¿Estás capturando en el formulario de tu aplicación algún evento "OnKeyPress", "OnKeyUp"? Si es así asegúrate de que en dichos eventos "se deje" pasar la tecla pulsada... no vaya a ser que se "capture" y por tanto el menú no se entere de nada... es lo que se me ocurre a bote pronto, vamos.