PDA

Ver la Versión Completa : sobre TActionMainMenuBar


dabas
05-09-2003, 01:13:34
Estoy usando delphi 7 y he puesto en mi aplicacion un TMainMenuBar y TActionManager (para las acciones).

¿Porque cuando se pincha sobre un menu, se ejecuta dos veces siempre?


Gracias por vuestra ayuda

marcoszorrilla
06-09-2003, 22:21:49
Porque tienes el código repetido, para utilizar el ActionManager, tienes que colocar el código únicamente en este componente y luego relacionar las correspondientes opciones del menú a través de su propiedad Action con las acciones que contienen el código.

En una palabra, tienes el código en el ActionManager y el en menú, borra el código de una de las acciones del menú comprobando que reside en la propiedad Action del Actionmanager y verás como no se repite.

Un Saludo.

dabas
07-09-2003, 00:15:27
Creo que no expuse el tema con claridad,

Este tipo de menus no deja hacer doble click para escribir el codigo. En su lugar hay una propiedad ActionManager, por eso tengo que usar el TActionManager.

solo he escrito codigo en la propia accion, ésta la enlazo con la propiedad Action de un Item del menu.

Estos menus son un lio, porque luego hay que añadir items para formar las distintas opciones.

Pero me he dado cuenta que hace dos ejecuciones una por pinchar y otra por soltar el boton. Y solo pasa en opciones de menu que no tienen opciones por debajo (que no despliega menu) , no se si me explico.

marcoszorrilla
07-09-2003, 10:48:26
Acabo de realizar una prueba y mantengo lo dicho, he creado un main menu con 5 opciones, luego he bajado un componenete Actionmanager, y le he colocado 3 opciones, he puesto en cada una de ellas un ShowMessage que identifica la acción.

Ahora acudo al menu y relaciona cada opción del mismo a traves de su propiedad Action con algunas de las acciones que almacené previamente en el componente ActionManager, se ejecutan sin problemas 1 sola vez al hacer clic.

Un Saludo.

javiermorales
07-09-2003, 12:35:27
He realizado las mismas pruebas que marcoszorrilla y estoy de acuerdo con él.

Un saludo.

dabas
07-09-2003, 15:38:22
Estoy de acuerdo que no os ha dado problemas, pero los mensajes de Showmessage no dejan capturar el evento "soltar el boton del raton", por lo tanto se ejecuta una vez.

Si la accion fuese por ejemplo:

label1.caption:=label1.caption+'click '

se ejecuta dos veces.


Agradezco vuestra atencion

marcoszorrilla
07-09-2003, 17:43:33
Sigo opinando lo mismo, he hecho la prueba con el label1.caption.

Como el control contiene el texto label1
la primera vez que pulsas lo substituye por label1click

la segunda vez como es igual a
label1click quedará
label1clickclick

En definitiva funciona correctamente.

Un Saludo.