Programación General > Visual Basic 6.0 e inferiores

 Abrir Formularios Al Ejecutar

(1/1)

fap1603:
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.

Sagutxo:
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.

Blag:
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:

Brroz:
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:

--- Código: Text ---     .    .    .    Dim frm1 As Form1     Set frm1 = Form1    frm1.Show    SaveSetting App.ExeName, frm1.Name, "Cargado", "Sí"    .    .    .  
En el evento Unload del formulario añade:

--- Código: Text --- Private Sub Form_Unload(Cancel as integer)    DeleteSetting App.ExeName, Me.NameEnd Sub  
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 = NothingEnd 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.

Brroz:
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.NameEnd Sub  
Espero que me haya explicado ok.

Chau.

Navegación

[0] Índice de Mensajes

Ir a la versión completa