Visual Basic - instanciar formularios

Life is soft - evento anual de software empresarial
 
Vista:

instanciar formularios

Publicado por david (14 intervenciones) el 25/06/2003 09:06:35
Buenas!!!

Estoy haciendo un programa que abre formularios automaticamente a partir de uno ya creado. La forma de hacerlo es la sgte:
-----------------------------------------------
Dim F() As frmSecuenciacion

Private Sub mnuNuevo_Click()

iNumeroForm = iNumeroForm + 1

ReDim Preserve F(iNumeroForm)

Set F(iNumeroForm) = New frmSecuenciacion

Load F(iNumeroForm)
F(iNumeroForm).Show

End Sub
----------------------------------------------

Como podéis ver, he creado una matriz de un formulario ya creado anteriormente para poder abrir todos los que haga falta. Esto funciona correctamente, pero mi problema es que quiero poder hacer referencia a cualquiera de los formularios abiertos y no se cómo hacerlo.

Cuando intento acceder por ejemplo a "f(1).caption", habiendo 5 formularios, debería sacarme el título del form, pero me dice que "El subíndice está fuera del intervalo".

Mi pregunta es cómo se puede hacer esto, y si hay alguna otra forma de hacerlo, p.f., si me podéis decir, os estaría muy agradecido.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:instanciar formularios

Publicado por Cecilia Colalongo (3116 intervenciones) el 25/06/2003 18:20:31
Revisa la colección Forms que te puede servir.

Private Sub Form_Activate ()
Dim I
lstForms.Clear
For I = 0 To Forms.Count - 1
lstForms.AddItem Forms(I).Caption
Next I
End Sub

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:instanciar formularios

Publicado por Kloack (19 intervenciones) el 07/07/2003 16:48:48
La respuesta de la compañera es muy buena, podrias también jugar con
una colección de objetos.

Private sub Añadir()

Dim objCol as new Collection
Dim objForm as object

set objForm = new frmMiFormulario

objForm.Caption = "Primer Formulario"

objCol.Add objForm , cStr(objCol.Count)

set objForm = nothing

'Aqui podrias repetir el codigo cuantas veces quisieras
'Una vez metidos todos en la colección para acceder haz

objCol.item("1").Caption

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar