https://foro.gambas-es.org/viewtopic.php?f=5&t=1428&p=8309#p8309
-----------------------------------
fabianfv
Jueves, 24 Febrero 2011, 05:44

Re: Formularios
-----------------------------------
[quote user="ljma" post="8291"]
fabianfv:

Tal y como tu lo has hecho funciona perfectamente y ya se ven los "añadidos" del Form. Problema: esa función solo vale para abrir el Form1; si queremos abrir el Form2 ya no podemos. El objetivo es crear una clase que pueda abrir diferentes formularios.

[/quote]
Esa función vale para abrir todos los Form1 que quieras crear, no tan sólo para un única instancia.

Pero vale, entiendo que quieres abrir diferentes formularios mediante esa función. Ahora bien, ¿cuál es realmente la necesidad que intentas cubrir? Me explico: si todo lo que la función hará es abrir formularios estarías haciendo algo que no tiene utilidad porque de todos modos necesitas especificar en el código el nombre del formulario en la llamada a la función.

Ejemplo:

[code linenumbers=false syntax=gambas]
'Esto no funciona, pero supongamos que sí lo hace
PUBLIC FUNCTION abrirFormulario(pantalla AS Form)
  pantalla.inicia("pepe")
END

...

  abrirFormulario(Form1) ' equivale a Form1.inicia("pepe")

...

  abrirFormulario(Form2) ' equivale a Form2.inicia("pepe")

...

  abrirFormulario(FormN) ' equivale a FormN.inicia("pepe")
[/code]

Como ves, podrías reemplazar cada llamada a la función "abrirFormulario" por la llamada a la función inicia de cada tipo de formulario "FormX.inicia("pepe"), entonces no hay ninguna ganancia en escribir y usar esa función.

Es como si pensaras en hacer una función que suma dos números enteros:

[code linenumbers=false syntax=gambas]
PUBLIC SUB suma(a AS Integer, b AS Integer) AS Integer
  RETURN a + b
END

...

suma(3, 5) 'equivale a 3 + 5

...

suma(7, 11) 'equivale a 7 + 11
[/code]


