• Viernes 11 de Octubre de 2024, 07:39

Autor Tema:  Abrir Formularios Al Ejecutar  (Leído 1804 veces)

fap1603

  • Miembro MUY activo
  • ***
  • Mensajes: 135
    • Ver Perfil
Abrir Formularios Al Ejecutar
« en: Lunes 1 de Noviembre de 2004, 05:40 »
0
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.
Saludos,

Francisco Ayala Pinazo
Lima - Perú

Sagutxo

  • Miembro MUY activo
  • ***
  • Mensajes: 320
    • Ver Perfil
Re: Abrir Formularios Al Ejecutar
« Respuesta #1 en: Lunes 1 de Noviembre de 2004, 11:46 »
0
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.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Mi mujer tiene un físico bárbaro!!!. Einstein.

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Abrir Formularios Al Ejecutar
« Respuesta #2 en: Miércoles 3 de Noviembre de 2004, 22:26 »
0
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
  1.  
  2. dim ventana as new form
  3.  
  4.  

Luego, para abrir dichas ventanas, debes de utilizar el comando .show

Código: Text
  1.  
  2. ventana.show
  3.  
  4.  

Saludos,

Blag :devil:

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Abrir Formularios Al Ejecutar
« Respuesta #3 en: Jueves 4 de Noviembre de 2004, 17:13 »
0
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
  1.  
  2.     .
  3.     .
  4.     .
  5.     Dim frm1 As Form1
  6.     Set frm1 = Form1
  7.     frm1.Show
  8.     SaveSetting App.ExeName, frm1.Name, "Cargado", "Sí"
  9.     .
  10.     .
  11.     .
  12.  
  13.  

En el evento Unload del formulario añade:
Código: Text
  1.  
  2. Private Sub Form_Unload(Cancel as integer)
  3.     DeleteSetting App.ExeName, Me.Name
  4. End Sub
  5.  
  6.  

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
  1.  
  2. Private Sub Main()
  3.    Dim i1 as Integer , s1 as String, frm1 as Form
  4.    For i1 = 1 to 5
  5.        s1 = "Form" & i1
  6.        If "Sí" = GetSetting(App.ExeName, s1, "Cargado", "No") Then
  7.            Select Case i1
  8.                Case 1
  9.                    Set frm1 = new Form1
  10.                case 2
  11.                    Set frm1 = new Form2
  12.                case 3
  13.                    Set frm1 = new Form3
  14.                case 4
  15.                    Set frm1 = new Form4
  16.                case 5
  17.                    Set frm1 = new Form5
  18.            End Select
  19.            frm1.Show
  20.        End If
  21.    Next i1
  22.    Set frm1 = Nothing
  23. End Sub
  24.  
  25.  

Si cuentas con una utilidad para desinstalar tu aplicación, o cuando te interese borrar estas propiedades, utiliza:
Código: Text
  1.  
  2. DeleteSetting App.ExeName
  3.  
  4.  

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

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Abrir Formularios Al Ejecutar
« Respuesta #4 en: Jueves 4 de Noviembre de 2004, 18:33 »
0
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
  1.  
  2. Public indFinal as Boolean
  3.  
  4. Private Sub FinAplicación()
  5.     HacerCosas
  6.     indFinal = True
  7.     End
  8. End Sub
  9.  
  10.  
Código: Text
  1.  
  2. Private Sub Form_Unload(Cancel as integer)
  3.    If Not indFinal Then DeleteSetting App.ExeName, Me.Name
  4. End Sub
  5.  
  6.  

Espero que me haya explicado ok.

Chau.