Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: fap1603 en Lunes 1 de Noviembre de 2004, 05:40
Título: Abrir Formularios Al Ejecutar
Publicado por: fap1603 en Lunes 1 de Noviembre de 2004, 05:40
Hola a todos,
Primero que nada muchas gracias po la respuesta. Trabajo en vb 6, incluido el service pack del vs 6, mi pregunta es la siguiente, yo tengo en un archivo los nombres de los formularios que deseo abrir, en este caso seran los que se quedaron abiertos al cerrar el programa. pero no se como hacero, no encuentro la forma de hacerlo. Por favor agradeceria mucho me den una respuesta.
Título: Re: Abrir Formularios Al Ejecutar
Publicado por: Sagutxo en Lunes 1 de Noviembre de 2004, 11:46
Salu2. Creo que lo mas apropiado es hacerte un .INI que te controle lo que esta ejecutado o no. Cuando tu aplicación arranque que lea el .ini.
Suerte. Adjunto ejemplo de crear leer y modificar .ini Espero que lo entiendas, es fácil.
Título: Re: Abrir Formularios Al Ejecutar
Publicado por: Blag en Miércoles 3 de Noviembre de 2004, 22:26
Simplemente debes leer el archivo en un listbox....ahi guardas todas las lineas del archivo correspondientes a las ventanas que has abierto....Luego con un for lees cada linea y se la asignas a una variable declarada de tipo form....
Código: Text
dim ventana as new form
Luego, para abrir dichas ventanas, debes de utilizar el comando .show
Código: Text
ventana.show
Saludos,
Blag :devil:
Título: Re: Abrir Formularios Al Ejecutar
Publicado por: Brroz en Jueves 4 de Noviembre de 2004, 17:13
Hola fap1603.
Puedes conseguir lo que pretendes de varias formas, si bien yo aquí te muestro una de mi gusto.
Se trata de utilizar funciones de vb que nos permiten almacenar , borrar y recuperar 'propiedades' en el registro de windows (poco nos importará en que sección o clave...) Estas funciones son SaveSetting , GetSetting y DeleteSetting
Cada vez que muestres un formulario de estos que quieres que sea visible en el caso que dices, síguelo de una llamada a SaveSetting:
En el procediento que se inicie la aplicación (Sub Main o evento Load del formulario principal) recupera los formularios que estaban visibles. Supongamos que los formularios de tu proyecto son 5 y se llaman FormN, donde N es el número de formulario. El código podría ser algo así:
Código: Text
Private Sub Main()
Dim i1 as Integer , s1 as String, frm1 as Form
For i1 = 1 to 5
s1 = "Form" & i1
If "Sí" = GetSetting(App.ExeName, s1, "Cargado", "No") Then
Select Case i1
Case 1
Set frm1 = new Form1
case 2
Set frm1 = new Form2
case 3
Set frm1 = new Form3
case 4
Set frm1 = new Form4
case 5
Set frm1 = new Form5
End Select
frm1.Show
End If
Next i1
Set frm1 = Nothing
End Sub
Si cuentas con una utilidad para desinstalar tu aplicación, o cuando te interese borrar estas propiedades, utiliza:
Código: Text
DeleteSetting App.ExeName
Espero que con estos ejemplos explicara la idea lo suficientemente bien... es posible que en el código haya cometido algún fallo (está escrito al vuelo), pero la idea sería esa.
Suerte.
Título: Re: Abrir Formularios Al Ejecutar
Publicado por: Brroz en Jueves 4 de Noviembre de 2004, 18:33
Hola de nuevo.
Así de flash me acabo de dar cuenta de un pequeño detalle que hará que la solución que te doy no funcione: Al finalizar la aplicación se descargarán todos los formularios... por lo que se hará un 'DeleteSetting' de todos y cada uno. Para evitar esto, puedes usar una variable booleana definida como pública a nivel de módulo y condicionar el 'DeleteSetting' por esa variable: es decir, antes del End de la aplicación puedes poner la variable a True
Código: Text
Public indFinal as Boolean
Private Sub FinAplicación()
HacerCosas
indFinal = True
End
End Sub
Código: Text
Private Sub Form_Unload(Cancel as integer)
If Not indFinal Then DeleteSetting App.ExeName, Me.Name