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

saber si un formulario está abierto

Estas en el tema de saber si un formulario está abierto en el foro de Visual Basic clásico en Foros del Web. Hola muy buenas. Necesitaría saber antes de cerrar la ventana principal de mi aplicación que todas las otras están cerradas ( o almenos unas de ...
  #1 (permalink)  
Antiguo 09/08/2006, 10:28
 
Fecha de Ingreso: julio-2003
Mensajes: 164
Antigüedad: 20 años, 9 meses
Puntos: 0
saber si un formulario está abierto

Hola muy buenas. Necesitaría saber antes de cerrar la ventana principal de mi aplicación que todas las otras están cerradas ( o almenos unas de ellas) pero no sé cómo sería.

Lo que quiero hacer es que antes del unload del formulario principal mirar los otros formualrios, algo así:

if frmNombreFormulario ????? then
msgbox "Cierre todas las ventanas antes de cerrar la principal"
end if

unload me 'del formualrio principal

Gracias muchas
  #2 (permalink)  
Antiguo 09/08/2006, 10:40
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
utiliza esta funcion

public function FormularioActivo(NmbFormulario as String) as Boolean
Dim Formulario As Form
For Each Formulario In Forms
If (UCase(Formulario.Name) = UCase(NmbFormulario)) Then
FormularioActivo = true
Exit For
End If
Next
end Function
  #3 (permalink)  
Antiguo 10/08/2006, 00:55
 
Fecha de Ingreso: julio-2003
Mensajes: 164
Antigüedad: 20 años, 9 meses
Puntos: 0
Muchas gracias tazzito, lo he miodificado un pelín pero me ha servido de maravilla,

reitero las gracias, un saludo.
  #4 (permalink)  
Antiguo 10/08/2006, 05:26
 
Fecha de Ingreso: julio-2003
Mensajes: 164
Antigüedad: 20 años, 9 meses
Puntos: 0
OK, pero como puedo controlar lo mismo sipinchan en la 'X' de la ventana y no en el botón salir?? he puesto el mismo código para los dos casos, pero en el caso de que pinchen la 'X' igual se me cierra.

Gracias
  #5 (permalink)  
Antiguo 10/08/2006, 07:36
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
si te refieres al cierre general del programa utilizalo en el unload del formuliaro principal pruebalo ahi y cambia la propiedad cancel a true (la variable)
  #6 (permalink)  
Antiguo 10/08/2006, 08:07
 
Fecha de Ingreso: julio-2003
Mensajes: 164
Antigüedad: 20 años, 9 meses
Puntos: 0
Mensaje

¿Cómo puedo hacer eso?
En el botón de salir sólo he puesto
Form_Unload (1)

y en la cabecera del form unload:

Private Sub Form_Unload(Cancel As Integer)
If FormularioActivo("frmAlumno") Or FormularioActivo("frmEmpresa") Then
MsgBox "Cierre todas las ventanas antes de cerrar la aplicación", vbExclamation
Exit Sub
Else
Unload Me
Exit Sub
End If
End Sub

pero me sigue pasando lo mismo
  #7 (permalink)  
Antiguo 10/08/2006, 08:20
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
Prueba de esta forma

En el botón de salir pon solo
UNLOAD ME

y en la cabecera del form unload:

Private Sub Form_Unload(Cancel As Integer)
If FormularioActivo("frmAlumno") Or FormularioActivo("frmEmpresa") Then
MsgBox "Cierre todas las ventanas antes de cerrar la aplicación", vbExclamation
cancel = 1 'Prueba con cero si no te funca asi
Else
END 'es mucho mejor terminar asi un programa
End If
End Sub
  #8 (permalink)  
Antiguo 10/08/2006, 08:26
 
Fecha de Ingreso: julio-2003
Mensajes: 164
Antigüedad: 20 años, 9 meses
Puntos: 0
PERFECTOOOOOO

MUCHAS GRACIAS TAZZITO,

muchas gracias
  #9 (permalink)  
Antiguo 10/08/2006, 08:33
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
no hay problema en lo que pueda ayudar lo intentaremos xD
  #10 (permalink)  
Antiguo 24/08/2006, 12:21
 
Fecha de Ingreso: agosto-2006
Mensajes: 39
Antigüedad: 17 años, 8 meses
Puntos: 1
Por lo que veo, estas hablando de una aplicacion MDI

Por lo tanto, se encuentran varios Formularios y deseas saber cual es el activo, no?

Podes usar la Propiedad "ActiveForm" de un Formulario MDI. Ejemplo:

Código:
MDIForm1.ActiveForm
Y asi sabrás cual es el formulario activo. También se pueden cambiar las propiedades de dicho formulario. Ejemplo:

Código:
MDIForm1.ActiveForm.Caption = "Visual Basic"
Y de esta manera cambiaríamos el titulo del formulario activo
  #11 (permalink)  
Antiguo 25/08/2006, 02:08
jorevale
Invitado
 
Mensajes: n/a
Puntos:
En las FAQs hay un ejemplo...

... que anula el cierre de los formularios por la X.

Saludos
  #12 (permalink)  
Antiguo 06/12/2008, 15:37
Avatar de DjMiki  
Fecha de Ingreso: octubre-2007
Ubicación: Paijan - Trujillo - La Libertad
Mensajes: 90
Antigüedad: 16 años, 7 meses
Puntos: 2
Pregunta saber si un formulario está abierto

hola q tal bueno estan tratando ya sobre los formularios activos en vb bueno yo tambiene staba indigando sobre eso pucha y enocntre poco y vi q aqui me pueden ayudar, bueno ya pude tratar de saber q formulario esta activo y mandar un mensaje diciendo q esta activo pero lo pense q yseria algo molesto pa el usuario si solo se le envia ese mensaje, y trate de hacer por mi cuenta pa q se mande el foco o q se ponga delante de los demas formularios activos, sin ningun resultado favorable ojala me peudan ayudar ustedes, necesito es aayuda porfa intente con esto:

Código:
If Screen.ActiveForm.Name = frmAlquileres.Name Then
frmAlquileres.SetFocus
Exit Sub
Else
frmAlquileres.Show
End If
Si alguien me puediese ayudar con algo, como q codigo debo agrega ro quitar,
bueno gracias de Antemano
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 11:52.