Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Como Cerrar Varios Formularios A La Vez Generados Por Codigo?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Como Cerrar Varios Formularios A La Vez Generados Por Codigo? 
 
Hola.

Genero una serie de formularios con algunos controles dentro (un label etc.) con los datos de una tabla con este código:

PUBLIC SUB mostrar_Click()
DIM i AS Integer

VarResult = Conexion.Exec("Select * from '" & tabla & "' ")

DO WHILE VarResult.Available

  MiFormulario = NEW Form AS "miform"
  MiFormulario.height = 200
  miformulario.Sticky = TRUE
  MiFormulario.Border = 1
  MiFormulario.x = x
  MiFormulario.y = y
  MiFormulario.Background = &FF9F3F&

  
  nota = NEW TextArea(miformulario)

  nota.x = 5
  nota.y = 5
  nota.width = 190
  nota.height = 100
  nota.Background = &FF9F3F&
  nota.foreground = &000000&
  nota.Visible = TRUE
  
  lbldescripcion = NEW Label(miformulario)

  lbldescripcion.x = 5
  lbldescripcion.y = 110
  lbldescripcion.width = 190
  lbldescripcion.height = 100
  lbldescripcion.foreground = &000000&
  lbldescripcion.Text = "Fecha"
  lbldescripcion.Visible = TRUE

  botonencima = NEW ToggleButton(miformulario) AS "encima"
  
  botonencima.x = 175
  botonencima.y = 115
  botonencima.width = 20
  botonencima.height = 20
  botonencima.text = "."
  botonencima.Visible = TRUE
  
  fecha = NEW TextBox(miformulario)
  
  fecha.x = 5
  fecha.y = 170
  fecha.width = 190
  fecha.height = 20
  fecha.Background = &FF9F3F&
  fecha.foreground = &000000&
  fecha.enabled = FALSE
  fecha.Visible = TRUE

  nota.text = Varresult["texto"]
  fecha.text = Varresult["fecha"]
  MiFormulario.Show
  IF x > 1000 THEN
  y = 800
  x = 0
  END IF
  
  x += 100
  VarResult.MoveNext()
  
  LOOP
  
END

Como puedo cerrar todos los formularios creados, a la vez?


¿hay alguna forma de controlar mejor los formularios creados por código?

Por ejemplo lo del botón encima es para que se quede el formulario creado encima de todos los demás en el escritorio,
pero solo funciona para el primer formulario que se crea, no puedo controlar bien los demás.

¿Se puede hacer un array con formularios?

por ejemplo miformulario[1] miformulario[2] o algo parecido.

gracias.
 



 
pittusa - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cerrar Varios Formularios A La Vez Generados Por Codigo? 
 
Sí. Crea un array de tipo Object (Object[]) y cada vez que creas un Form lo añades mediante el método ADD. Cuando quieras cerrarlos recorres el array) llamando al método Close.

Deberías leer Object[] en la ayuda si te quedan dudas.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cerrar Varios Formularios A La Vez Generados Por Codigo? 
 
Hola, supongo que como siempre intento no reinventar la rueda. Hay una colección que se mantiene sola:

Windows (gb.qt)
Returns a collection of all windows created by your application.

Symbols
This class is static.
This class acts like a read-only array.
This class is enumerable with the FOR EACH keyword.
Static properties    
Count      

Si tu recorres esta colección con un bucle FOR EACH ... NEXT

y compruebas que no se corresponde con el objeto Application.MainWindow que será siempre  la ventana principal de tu proyecto, las demás las cierras y te quedas con el formulario principal abierto. Mas o menos así:

PUBLIC SUB cierraTodo()

   DIM ventana AS Window

   FOR EACH ventana IN Windows
      IF ventana.text <> Application.MainWindow.Text THEN
         ventana.close
      ENDIF
   NEXT

END

* Ojo no lo he probado, lo he escrito a mano alzada (como quien dice) pero te dará una idea de como lo haría yo.

Un saludo

Antonio
 



 
ahtonio - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cerrar Varios Formularios A La Vez Generados Por Codigo? 
 
Buen dato, lo probé y funciona.

Saludos
 



 
última edición por abarzuaf el Miercoles, 11 Agosto 2010, 18:29; editado 2 veces 
abarzuaf - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Cerrar Un Aplicación Ajena A Gambas kotonfree General 3 Sabado, 23 Abril 2011, 17:46 Ver último mensaje
kotonfree
No hay nuevos mensajes Cerrar Message.info, Desde Codigo tururu Controles/Librerías/Componentes 1 Miercoles, 06 Julio 2011, 08:52 Ver último mensaje
shordi
No hay nuevos mensajes Personalizar Los .deb Generados En Gambas netking86 General 4 Jueves, 08 Septiembre 2011, 02:59 Ver último mensaje
Dani26
No hay nuevos mensajes Rellenar Varios Combos De Varios Formulari... CanihoJR General 9 Martes, 12 Junio 2012, 21:44 Ver último mensaje
luisrel
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron