https://foro.gambas-es.org/viewtopic.php?f=1&t=1062
-----------------------------------
shordi
Miercoles, 03 Noviembre 2010, 09:45

Abrir Un Formulario Cuyo Nombre Está En Una Variable
-----------------------------------
Lo que me fastidia es que es algo que ya resolví en una ocasión, en un programa que no conservo y que he olvidado por completo. La memoria de alemán que tengo me dice que era algo así como 

[code linenumbers=false syntax=gambas]
dim f as form
dim cad as string

cad="nombredelformulario"
f=new (cad)
f.show
[/code]

Pero eso no funciona. He rezado a san Gúgul y no he encontrado nada a primera vista. 

¿Alguien recuerda cómo se hacía?


-----------------------------------
jsbsan
Miercoles, 03 Noviembre 2010, 10:51

Re: Abrir Un Formulario Cuyo Nombre Está En Una Variable
-----------------------------------
Te sobran los parentesis....lo he hecho asi:

[quote]' Gambas class file

PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()

END

PUBLIC SUB Button1_Click()
DIM f AS form
DIM cad AS String

cad = "nombredelformulario"

f = NEW nombredelformulario
f.show
 

END
[/quote]


Y aqui tienes una captura del proyecto:
 [img]http://foro.gambas-es.org/files/images/6/pantallazo_1288777754_770420.png[/img] 

(evidentemente tienes que haber creado un formulario llamado "nombredelformulario").

¿eso es lo que pretendias hacer?

Saludos


-----------------------------------
shordi
Miercoles, 03 Noviembre 2010, 20:37

Re: Abrir Un Formulario Cuyo Nombre Está En Una Variable
-----------------------------------
No Julio, se supone que no sabes qué formulario quieres abrir. Este se abre en tiempo de ejecución. 
Quizá el ejemplo no era bueno, quiero algo así.

[code linenumbers=false syntax=gambas]

Public sub abreformularios(formulario as string)

dim f as form
f=new (formulario) 'los paréntesis es lo que mi memoria me ha dicho que ponga, la muy inútil...
f.show

end

[/code]

El nombre del formulario se recibe en un string y la sub lo crea y abre en el momento...
¿Alguna pista?


-----------------------------------
jsbsan
Miercoles, 03 Noviembre 2010, 21:48

Re: Abrir Un Formulario Cuyo Nombre Está En Una Variable
-----------------------------------
No te entiendo...

He hecho esto:
[code linenumbers=false syntax=gambas]PUBLIC SUB Button1_Click()
DIM f AS form
DIM cad AS String

cad = TextBox1.text
'nombredelformulario
abreformularios(cad)
END


PUBLIC SUB abreformularios(formulario AS String)
DIM f AS form
f = NEW (formulario) 'los paréntesis es lo que mi memoria me ha dicho que ponga, la muy inútil...
f.show
END[/code]

Y en el formulario he puesto un textbox, 
En tiempo de ejecucion, le pongo al textbox el nombre de [i]"nombredelformulario"[/i] y lo crea sin dar problemas...


-----------------------------------
shordi
Miercoles, 03 Noviembre 2010, 23:01

Re: Abrir Un Formulario Cuyo Nombre Está En Una Variable
-----------------------------------
Eso es que la memoria me funciona bien (jódete aleman del pijo) y lo que está mal es el código de mi aplicación "de verdad". Lo revisaré.
Gracias por la respuesta. Como siempre, este es un gran foro...


