Autor |
Mensaje |
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Sobre La Clase Form
Leo ésto en las ayudas del Form:
Citar: This class can be used like an object by creating a hidden instance on demand.
¿Qué quiere decir exactamente?
|
#1 Martes, 02 Septiembre 2014, 12:23 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Sobre La Clase Form
Shordi
¿que puedes instanciar formularios, como si fueran objetos normales que instancias de clases?
Ejemplo:
Dim formularioTemporal as Form1
Dim ArrayFormularios as form1[]
Dim a as integer
for a=0 to 10
formularioTemporal= New Form1 'creamos nueva instancia. (instancia bajo demanda "instance on demand.")
ArrayFormularios.add(formularioTemporal) 'añadimos formulario al array
formularioTemporal=null 'como es temporal anulamos para poder reutilizarla en el bucle.
next
'al finalizar el bucle, obtemos un array de formularios tipo "Form1" que tiene 10 formularios - objetos diferentes
El código no lo he probado pero debe de funcionar.
Saludos
|
#2 Martes, 02 Septiembre 2014, 12:39 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Sobre La Clase Form
Cuidado con la instancia que puede estar oculta y no te la esperas.
Mira que usar oculta. A lo calladito. Esa instancia no es muy legal, cuidadito.
El que avisa no es traidor.
¿ Sera tímida ?.
Dim newformulatrio as new formTimido.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#3 Martes, 02 Septiembre 2014, 14:05 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Sobre La Clase Form
Citar: ¿que puedes instanciar formularios, como si fueran objetos normales que instancias de clases?
Eso es lo que yo he deducido, o sea lo que literalmente dice, pero eso de oculta como que me ha hecho dudar.
Instanciar forms es cosa de todos los días. Lo que no tengo claro es cómo heredar de ellos...
Mira que soy cepa con la POO...
¿Cómo harías tú una clase que fuera un form extendido? algo así como aquél supergridview con que te estrenaste en la POO hace mil años.
Yo he hecho algo parecido, pero no me convence, no...
|
#4 Martes, 02 Septiembre 2014, 17:00 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Sobre La Clase Form
Lo de oculta pudiera ser de que el formulario puede ser cargado y no mostrado.
Pero instanciarlo habrá que instanciarlo antes.
No podemos darle propiedades al formulario antes de crear la instancia, el objeto sería nulo.
Con la tontería del ejemplo anterior.
¿ Conocías lo de Object.New ?.
Citar:
....
This routine works exactly like the NEW operator, except that the class name is specified at runtime and not at compile time.
...
La clase va entre las comillas, como cadena.
Por cierto, a la hora de crear el formulario, lo he creado en el método Open de FMain.
El FormTimido creado no tiene el foco. Por mucho que le añada FormTimido.SetFocus(), sigue teniendo FMain el foco.
Ojo, sin usar .ShowModal()
Jorge:
¿ Qué quieres que haga el formulario exactamente ?.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Martes, 02 Septiembre 2014, 19:02; editado 1 vez
|
#5 Martes, 02 Septiembre 2014, 19:01 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Sobre La Clase Form
Lo hice de otra forma, pero igual.
Clase FormTimido:
En FMain
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#6 Martes, 02 Septiembre 2014, 19:47 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Sobre La Clase Form
Citar: Lo de oculta pudiera ser de que el formulario puede ser cargado y no mostrado.
Si, Shell tiene razón, una cosa es que lo crees y lo cargues y luego lo muestres o no
Citar: ¿Cómo harías tú una clase que fuera un form extendido? algo así como aquél supergridview con que te estrenaste en la POO hace mil años.
Depende, que quieres hacer ¿un nuevo componente? o sea
¿un nueva clase formulario que en tiempo de edicion (en el IDE), se puedan añadir controles?
¿un clase que incluya su propio formulario?
Ten encuentra que un form y una clase en la practica es lo mismo....
Yo estoy terminando una nueva clase (que la llamo superinput ), la cual tiene un método donde se le pasan unos datos (campos, nombres, opciones) y es capaz de interpretar esos datos, creado el formulario "en tiempo de ejecución" con controles textbox, valuebox, textarea, combobox, y dos botones de "aceptar" y "cancelar".
Cuando cierras ese formulario devuelve los datos en una colección para que se puedan leer facilmente por el programa.
A ver si me da tiempo y lo subo.
Ya me dices.
Saludos
|
#7 Martes, 02 Septiembre 2014, 19:48 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Sobre La Clase Form
Citar:
¿ Qué quieres que haga el formulario exactamente ?.
Nada demasiado concreto, pero tengo un par de formularios estándar que se repiten dentro de contenedores de otros formularios y me parece útil el dejarlos como un componente más.
Imagina, por ejemplo:
Un formulario que consta de un tableview y una barra de botones con los movimientos habituales más algún que otro botón no estándar
Ese formulario es utilizado a lo largo de toda la aplicación como componente de manejo de las listas y demás, incrustándolo en paneles, etc.
Si lo tienes como componente sería más sencillo.
Es solo una vaga idea (quien dice table view, dice cualquier otra cosa)
Saludos.
|
#8 Martes, 02 Septiembre 2014, 20:26 |
|
|
CanihoJR
Ingeniero Programador
Registrado: Septiembre 2009
Mensajes: 269
Edad: 38 Ubicación: San Pedro Alcantara
|
Re: Sobre La Clase Form
[quote user="shordi" post="23056"] Citar:
....de las listas y demás, incrustándolo en paneles, etc....
Perdonad que reflote el tema, pero es justo lo que andaba buscando (con el buscador) creo, se puede meter un FORM dentro de otro FORM? concretamente como dice shordi, tengo algunos formularios que en realidad son repetitivos... se puede eso, usar en cualquier parte de otro form???
|
#9 Miercoles, 19 Noviembre 2014, 10:39 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Sobre La Clase Form
CanihoJR:
Citar: se puede meter un FORM dentro de otro FORM?
Yo lo que hago es usar paneles, donde meto todos los controles, y los inserto en el form... no se si esto te puede servir.
|
#10 Miercoles, 19 Noviembre 2014, 11:06 |
|
|
|