Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

PopUp Menú no desaparezca...

Estas en el tema de PopUp Menú no desaparezca... en el foro de Visual Basic clásico en Foros del Web. Hola! De nuevo os voy a dar la lata con el tema de los menús de VB. Alguien sabe cómo hacer que un menú contextual ...
  #1 (permalink)  
Antiguo 12/03/2008, 04:30
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
PopUp Menú no desaparezca...

Hola!

De nuevo os voy a dar la lata con el tema de los menús de VB.

Alguien sabe cómo hacer que un menú contextual (popup menú) no desaparezca al hacer click en alguno de sus ítems?
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
  #2 (permalink)  
Antiguo 12/03/2008, 05:28
 
Fecha de Ingreso: julio-2007
Ubicación: Delante del PC (Barcelona
Mensajes: 157
Antigüedad: 16 años, 9 meses
Puntos: 2
Re: PopUp Menú no desaparezca...

Cita:
Iniciado por Laforge Ver Mensaje
Hola!

De nuevo os voy a dar la lata con el tema de los menús de VB.

Alguien sabe cómo hacer que un menú contextual (popup menú) no desaparezca al hacer click en alguno de sus ítems?
porque no le pasas visible = true en el evento click del menú? No se si te servirá.
  #3 (permalink)  
Antiguo 12/03/2008, 05:48
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: PopUp Menú no desaparezca...

merci extrem_bcn pero no me sirve... el popupmenu no tiene propiedad visible.... (es el menú en si mismo que lo tiene pero el popup no).

También he probado de, al final del evento click de un item del menú volver a invocar el Me.PopUpMenu NombreMenu pero ... tampoco ...
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
  #4 (permalink)  
Antiguo 12/03/2008, 06:05
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: PopUp Menú no desaparezca...

La verdad es que no sé si eso se puede hacer, pero una posible solución sería crearte (simular) tu propio popup con p.ej. un control ListBox invisible y hacerlo visible al pulsar el botón derecho del ratón.
  #5 (permalink)  
Antiguo 12/03/2008, 09:02
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: PopUp Menú no desaparezca...

...podría ser una opción pero ... no sé,.. me gusta el aspecto del popup y con un ListBox ... otra forma sería hacerlo con un formulario enterito simulando el popup pero... se me complica mucho el tema.... :_(
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
  #6 (permalink)  
Antiguo 12/03/2008, 14:10
 
Fecha de Ingreso: julio-2007
Ubicación: Delante del PC (Barcelona
Mensajes: 157
Antigüedad: 16 años, 9 meses
Puntos: 2
Re: PopUp Menú no desaparezca...

por cierto, para que quieres hacer eso? (es que no le veo mucho sentido, que quizá si lo tiene eh!) quizá sabiendo eso a alguien se le puede ocurrir alguna idea.
  #7 (permalink)  
Antiguo 12/03/2008, 14:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Re: PopUp Menú no desaparezca...

Cita:
Iniciado por extrem_bcn Ver Mensaje
por cierto, para que quieres hacer eso? (es que no le veo mucho sentido, que quizá si lo tiene eh!) quizá sabiendo eso a alguien se le puede ocurrir alguna idea.
Sí, de hecho eso sería bastante útil para encontrarle una respuesta.
La única idea q' se me ocurre es hacer que un Timer compruebe si se muestra el PopupMenu, y si no que lo muestre. (Infelizmente, se me hace difícil comprobarlo pues no tengo VB).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 12/03/2008, 14:53
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: PopUp Menú no desaparezca...

Cita:
Iniciado por David el Grande Ver Mensaje
Sí, de hecho eso sería bastante útil para encontrarle una respuesta.
La única idea q' se me ocurre es hacer que un Timer compruebe si se muestra el PopupMenu, y si no que lo muestre. (Infelizmente, se me hace difícil comprobarlo pues no tengo VB).
¡No entiendo absolutamente nada!

¿entonces?
  #9 (permalink)  
Antiguo 12/03/2008, 15:02
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: PopUp Menú no desaparezca...

Hola,pues la unica que se me ocurre asi de una ,es que hagas algo asi:

Código:
Private Sub mnuGuardar_Click()
Dim i As Integer
If mnuFicheros.Visible = True Then
For i = 1 To 100
Me.PopupMenu mnuFicheros, , 0, 0
Next
End If
End Sub
cambiale el nombre al menu y las cordenadas del mismo y listo,al hacer clic te lo va a seguir mostrando por 100 veces.podes cambiarle el for por otra cosa y que nunca se pueda ocultar...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #10 (permalink)  
Antiguo 18/03/2008, 09:22
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: PopUp Menú no desaparezca...

Gracias a todos (y perdón por no estar en línea antes para responder a lo que me pedíais)

Seba123neo, has probado ese código? Poque yo probé algo parecido (sin bucle) y no funciona.

La razón es la siguiente:

El PopUp menú, tiene una opción de refresco de una serie de propiedades que se muestran a talle de información en el mismo popup. Quiero que cuando el usuario pulse el botón de 'REFRESCAR', puedan ir viendo cómo van evolucionando los valores de esas propiedades sin tener que volver a 'clickear' para mostrar otra vez el pop up.

Espero que eso os sirva.

Thanx!
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
  #11 (permalink)  
Antiguo 18/03/2008, 10:09
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Re: PopUp Menú no desaparezca...

Cita:
Iniciado por Laforge Ver Mensaje
Gracias a todos (y perdón por no estar en línea antes para responder a lo que me pedíais)

Seba123neo, has probado ese código? Poque yo probé algo parecido (sin bucle) y no funciona.

La razón es la siguiente:

El PopUp menú, tiene una opción de refresco de una serie de propiedades que se muestran a talle de información en el mismo popup. Quiero que cuando el usuario pulse el botón de 'REFRESCAR', puedan ir viendo cómo van evolucionando los valores de esas propiedades sin tener que volver a 'clickear' para mostrar otra vez el pop up.

Espero que eso os sirva.

Thanx!
La idea que se me ocurre, sería que en el lugar donde colocas el PopupMenu (quizás en el evento MouseDown), coloques un Do, Loop, y que cada vez que se salga haga una comprobación si se hizo click en Refrescar, para así volver a mostrarlo. Sería algo así como esto:
Código:
 
Sub Form_MouseDown()
Do
   mnuName.Tag = ""
   PopupMenu mnuName
Loop While mnuName.Tag = "REFRESCAR"
End Sub
Sub mnuRefrescar_Click()
mnuName.Tag = "REFRESCAR"
End Sub
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 18/03/2008, 10:20
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: PopUp Menú no desaparezca...

nop!

Los clicks en los items de un popup menú no se reflejan en el form_mousedown. Buen intento!!
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
  #13 (permalink)  
Antiguo 18/03/2008, 10:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Re: PopUp Menú no desaparezca...

Cita:
Iniciado por Laforge Ver Mensaje
nop!

Los clicks en los items de un popup menú no se reflejan en el form_mousedown. Buen intento!!
Pero así como te puse en el código puedes usar la Propiedad Tag del Menú para saber si se hizo Click en él o no... (P.S.: lo unico que no sé, y no puedo comprobar, es si antes de hacer Click en un Ítem del PopupMenu, ya se salta a la sgte. línea).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #14 (permalink)  
Antiguo 18/03/2008, 10:29
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: PopUp Menú no desaparezca...

David el Grande

He estado probando con la opción del Timer... pero no acaba de 'satisfacerme'.

Código:
Private Sub MnuRefrescar_Click()
Timer1.Enabled=true
'procedimiento de refresco 1
Timer1.enabled=true
'procedimiento de refresco 2
....
End Sub

Private Sub Timer1_Timer()
Me.PopupMenu MnuOpcion
End Sub
El interval del Timer lo tengo a 200 milis

Lo que pasa es que como el popup se muestra según las coordenadas del cursor... mientras mueves el cursor el popup te 'acompaña'....

... sigo buscando ...
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
  #15 (permalink)  
Antiguo 18/03/2008, 10:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Re: PopUp Menú no desaparezca...

Si quieres hacerlo con el Timer debes guardar las coordenadas X e Y en algún lugar...

Pero, creo que el otro código que puse te servirá, no sé si lo has entendido, sería:
Evento MouseDown o cualquier otro:
Código:
 
Do
    mnuName.Tag = ""
    PopupMenu mnuName,,X,Y
    'Se supone que no saltará a la línea sgte. mientras no se haga Click en un Item
Loop While mnuName.Tag = "REFRESCAR"
Evento Click del Menú Refrescar:
Código:
 
mnuName.Tag = "REFRESCAR"
'Resto del Código
Pues se supone entonces, que si se hace Click en el Menú Refrescar, el Tag tendría el valor "REFRESCAR" con lo que el bucle mostrará nuevamente el Menú, pero si se hace Click en cualquier otro Menú, el valor será Nulo, con lo que terminará el Bucle...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Última edición por David; 18/03/2008 a las 10:42
  #16 (permalink)  
Antiguo 18/03/2008, 10:44
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: PopUp Menú no desaparezca...

Sí sí, te entendí pero después de hacer un click en el mnurefrescar, aunque tenga el TAG en 'REFRESCAR' que evento se disparará automáticamente para que interprete ese TAG?
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
  #17 (permalink)  
Antiguo 18/03/2008, 10:47
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Re: PopUp Menú no desaparezca...

Cita:
Iniciado por Laforge Ver Mensaje
Sí sí, te entendí pero después de hacer un click en el mnurefrescar, aunque tenga el TAG en 'REFRESCAR' que evento se disparará automáticamente para que interprete ese TAG?
El bucle que dejaste en el MouseDown... . (El único gran problema es que según me parece no debería saltar a la sgte. línea antes de hacer Click en algún Ítem. Pero eso solo tú podrás comprobarlo).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #18 (permalink)  
Antiguo 18/03/2008, 11:08
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: PopUp Menú no desaparezca...

Cita:
Iniciado por David el Grande Ver Mensaje
El bucle que dejaste en el MouseDown... . (El único gran problema es que según me parece no debería saltar a la sgte. línea antes de hacer Click en algún Ítem. Pero eso solo tú podrás comprobarlo).
ya pero cuando lanzas el popup no dejas nada parado (no es como un form.show 1). Luego... no me sirve.

Además la ejecución el popup menú la tengo de la siguiente forma:

Código:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim msg As Long
msg = X / Screen.TwipsPerPixelX
Select Case msg
    Case WM_LBUTTONDOWN
    Case WM_LBUTTONUP
        Me.PopupMenu MnuOpcion
    Case WM_LBUTTONDBLCLK
    Case WM_RBUTTONDOWN
    Case WM_RBUTTONUP
        Me.PopupMenu MnuOpcion
    Case WM_RBUTTONDBLCLK
End Select
End Sub
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
  #19 (permalink)  
Antiguo 20/03/2008, 17:32
 
Fecha de Ingreso: marzo-2008
Mensajes: 5
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: PopUp Menú no desaparezca...

La verdad es que no tiene mucho sentido visualizar un PoPup y queno desaparezca, aunque es criterio de cada quien, lo que dice avellaneda es una posible solución, y si quieres que tus listas se vean igual que un PoPup, puedes diseñar bien tu lista.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:06.