Resumen Problemas con PopupMenu

Hola gente!

Este mensaje es para agradecer a todas las personas que me ayudaron con el problema del supuesto bug en el método PopupMenu. De no haber sido por ellos, no hubiera podido solucionar mi problema.
Gracias.

Por si le interesa a alguien, paso a detallar la solución que implementé:

A partir de la solución sugerida por José Rubí de la Vega (adjunto el mensaje), procedí de la siguiente forma:

- En la sección de declaraciones del primer formulario:

Dim mfrmMostrar As Form 'Formulario a mostrar al ocurrir el evento Timer...

- En el primer formulario coloqué un control Timer con la propiedad Enabled = False y un intervalo de 100 milisegundos (porque con los 200 que proponía José se notaba el retardo).

- El código de cada ítem del menú desplegable es de la forma:

   Set mfrmMostrar = frmAlgunFormulario
   tmrPopMenu.Enabled = True

- El código del evento Timer del control Timer colocado al principio es:

   mfrmMostrar.Show vbModal
   tmrPopMenu.Enabled = False 'Para evitar que al volver desde el otro formulario, éste se vuelva a mostrar...

Con este código, que es relativamente poco y fácil de manejar, los menúes funcionan a la perfección.

Gracias otra vez,

Leonardo Bosi
Buenos Aires, Argentina
leobosi@feedback.net.ar
leonardo@bosi.biocom.com
ICQ # 9027216
---------------------------------
"What do you want to reinstall today?"

  From: Leonardo Bosi <leobosi@feedback.net.ar>
To: "Visual Basic (Correo electrónico)"
     <vb-esp@ccc.uba.ar>
Subject: Bug en PopupMenu
Date: Mon, 18 May 1998 21:27:47 -0300
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"


Hola amigos/as,

Hoy me encontré con algo muy extraño, que yo creo que es un error en el método PopupMenu. Adjunto a este mensaje un mini proyecto en el cual reproduzco la situación que experimenté en un proyecto más grande. El proyecto es muy simple, les pediría por favor que lo prueben y me cuenten cómo les fue, pues tal vez el problema ocurra sólo en mi versión de VB (Empresarial con SP3), y no tengo otras versiones para probar.
El proyecto tiene tres formularios: Form1 tiene un menú con dos ítems, el primero llama a Form2. También hay un botón (Command1) que invoca el método PopupMenu para dicho menú.
Form2 es casi idéntico a Form1, con la única diferencia que el primer ítem del menú llama a Form3 (formulario vacío).
El problema es el siguiente: al utilizar los menúes de manera "convencional" (esto es, sin el PopupMenu que hacen los botones) todo funciona a la perfección, pero cuando llamo al Form2 desde el PopupMenu del botón del Form1, al tratar de llamar al Form3 de la misma manera (PopupMenu del botón del Form2), el botón no hace nada, cuando debería mostrar el menú desplegable.

Por favor, háganse un tiempito para verlo y coméntenme los resultados, tengo que entregar urgente el proyecto en el que apareció este problema, que me está frenando la entrega.

Desde ya muchas gracias,

Leonardo Bosi
Buenos Aires, Argentina
leobosi@feedback.net.ar
leonardo@bosi.biocom.com
ICQ # 9027216
---------------------------------
"What do you want to reinstall today?"

From: José Rubí de la Vega <jrubi@arrakis.es>
To: "vb-esp@ccc.uba.ar" <vb-esp@ccc.uba.ar>
Subject: Re: (VB-ESP) Bug en PopupMenu
Date: Tue, 19 May 1998 02:03:23 -0300
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"


>El problema es el siguiente: al utilizar los menúes de manera
"convencional" (esto es, sin el PopupMenu que hacen los botones) todo
funciona a la perfección, pero cuando llamo al Form2 desde el PopupMenu del
botón del Form1, al tratar de llamar al Form3 de la misma manera (PopupMenu
del botón del Form2), el botón no hace nada, cuando debería mostrar el menú
desplegable.
>
El problema es que Windows sólo puede tener abierto un menú de cada vez y
al llamar al Form2 desde un popup menú este no se cierra hasta que sales de
Form2, por lo que no puedes abrir ningún menú en form2.
Lo que puedes hacer es poner en form1 un control timer a 200 ms y
enabled=false, en el menú que llama a form2 cambiar la llamada por
timer1.enabled=true y en el timer1.timer llamar a form2.
Si tuvieras varias opciones de menú que llamen a varios formularios puedes
utilizar alguna variable para indicar cuál se ha elegido y en el evento
timer lanzar uno u otro formulario en función de dicha variable.

Un saludo.

_________________________________________________
José Rubí de la Vega
E-mail : jrubi@arrakis.es
WWW : http://www.arrakis.es/~jrubi
Podrás encontrar información sobre VB, la lista
VB-ESP y un resumen de los mensajes de la misma
ICQ # : 10939566



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com