PDA

Ver la Versión Completa : Igualar un Form


cesar_picazo
04-07-2005, 18:42:28
Buenos dias. Estoy utilizando Delphi 6, y tengo un formulario que se llama

vformulario1:tformmio;
vformulario2:tformmio;

Despues en la ejecucion de la aplicacion al presentar el vformulario1.show

igualo la variable vformulario2:=vformulario1;, esto con el fin de que no se este cargando informacion a cada rato.

Pero al tratar de igualar nuevamente el vformulario1 con el 2 me marca un mensaje de Access violation.

Mi duda es si alguien conece un metodo para copiar un formulario en otro utilizandolos como variable.

Segun yo al decir vformulario2:=Vformulario1; toda la informacion de variables y objetos que son del formulario se tienes que heredar. espero que sea correcto, de lo contrario espero que alguien conosca algun metodo para igual un form en tiempo de ejecucion

delphi.com.ar
04-07-2005, 19:18:31
Al hacer vformulario2:=vformulario1 lo único que estas haciendo es igualando la referencia o puntero a el formulario, no estas creando una nueva instancia con todos los datos. La forma de asignar los datos de los objetos a otra instancia de objeto que propone borland, es a través del método Assign, pero paradójicamente muchas clases no tienen implementado este método pese a no ser clases abstactas. Yo te recomiendo replantearte si verdaderamente necesitas hacer algo como esto, y de ser así, sobreescribir el método Assing, copiar todos los valores que necesites para igualar dos instancias de tus forms, y luego utilizarlo como debe ser.

Saludos!

jachguate
04-07-2005, 20:40:58
esto con el fin de que no se este cargando informacion a cada rato.
¿por alguna razón en particular? No he tomado directamente el tiempo que toma crear un formulario, pero he podido percibir que es realmente corto. A menos que estes creando cientos o miles de formularios en tiempos cortos, no creo que tenga una incidencia real en el desempeño, por lo que me parece que tratar de solucionar esto de otra forma es una pérdida de tiempo.

Hasta luego.

;)