PDA

Ver la Versión Completa : popupMenu


jorodgar
19-04-2005, 12:10:31
Tengo un popupMenu y mi problema es que tengo que hacer click en alguna de las opciones del popupMenu para que me desaparezca.
¿No hay forma que una vez desplegadas las opciones del popupmenu, si desplazas el ratón fuera del area de menú, desparezca el popupmenu?

Gracias

roman
19-04-2005, 17:19:10
¿A qué te refieres?

Si haces click fuera del menú, éste desaparece.

// Saludos

dec
19-04-2005, 17:49:51
Hola,

Añadir a lo que dice roman que pulsando la tecla ESC (Escape) también desaparece el PopupMenu.

vtdeleon
19-04-2005, 18:47:34
Saludos.

Creo que jorodgar se refiere a que una vez desplegado el menu, desaparezca cuando el mouse no este encima del las opciones del menu, sin pulsar teclas.

No es asi?:-/ jorodgar

jorodgar
20-04-2005, 09:02:59
Saludos.

Creo que jorodgar se refiere a que una vez desplegado el menu, desaparezca cuando el mouse no este encima del las opciones del menu, sin pulsar teclas.

No es asi?:-/ jorodgar
Siiiii, eso es. Perdonadme por mi mala explicación.
Mi problema es el que dices, he bajado varios fuentes con popupmenus y en todos me pasa lo mismo.:(
Sigo buscando la solución.....
Si alguien me puede ayudar se lo agradecería. Gracias.

Lepe
20-04-2005, 12:52:59
Probablemente lo necesites, pero no estoy de acuerdo con esa filosofia, hay usuarios que parecen tener parkinson con el mouse, y solo con salirse de un menú en cascada, que tenga que volver a abrir los 3 submenus..... parece demasiado.

Lo más facil es poner una opción dentro del PopupMenu, que diga "Cancelar" o "cerrar Menu"

Otro método es consultar las propiedades PopupPoint y Alignment para saber donde ha salido el popupmenu, en el evento OnPopup lo pones un timer en marcha. En el OnTimer, usas las funciones GetcursorPos de la unidad Qcontrols y averiguas si el ratón está dentro del área del popupmenu.

Para saber el área ocupada por el PopupMenu, ya nos contarás si el menú es estático (con lo cual sabes las dimensiones), o bien lo creas en ejecución y por tanto es dinámico, y hay que averiguar el tamaño sobre la marcha.


Advertencia: Puede que PopupPoint tengas que traducirlo a coordenadas en pantalla con Popupmenu1.ClientToSCreen(popuppoint) o algo similar.

Un saludo

jorodgar
20-04-2005, 15:26:21
Supongamos el messenger.
Si nos ponemos sobre el icono nos aparece un popup con las opciones (iniciar sesion, cerrar session, pagina principal msn,...) y luego si te pones en cualquier lado de la pantalla (fuera de la zona popupmenu) y haces un click con el raton el popupmenu desaparece.
El problema que tengo yo es que se me queda fijo y no me desaparece hasta que no pincho en alguna de las opciones.

roman
20-04-2005, 17:16:22
Si nos ponemos sobre el icono nos aparece un popup con las opciones (...) y luego si te pones en cualquier lado de la pantalla (fuera de la zona popupmenu) y haces un click con el raton el popupmenu desaparece.
El problema que tengo yo es que se me queda fijo y no me desaparece hasta que no pincho en alguna de las opciones.


Creo que hace falta que te pongas de acuerdo contigo mismo :p

Antes has afirmado que sí, que lo que quieres es que con sólo mover el puntero fuera del menú, éste se cierre.

Si estamos hablando de un PopupMenu usado sobre un icono en la bandeja de iconos a un lado del reloj, entonces este es un problema conocido descrito en el Knowledge Base de Microsoft. No tengo a mano la referencia pero más tarde puedo buscarla en casa.

Mi recomendación si es cierto que te refieres a este tipo de menús, es que te consigas una componente ya hecha que esté bien programada. Me parece que la de las librerías RX es buena.

// Saludos