PDA

Ver la Versión Completa : Clonar Form (fsMDIChild)


ManuelPerez
19-09-2007, 02:26:03
Hola necesito saber como clonar formularios fsMDIChild para poder utilizarlos de forma indiferente.
Por ejemplo clonar el formulario de una factura para poder abrir varias facturas como yo quiera.
gracias:rolleyes:

Caro
19-09-2007, 04:39:10
Hola Manuel, no te sirve crear el formulario todas las veces que necesites, y cada vez que que abras tu form le pasas el numero de factura para el cual desees mostrar los datos.


Form1 := TForm1.Create(Application);
Form1.show;


Saluditos

Neftali [Germán.Estévez]
19-09-2007, 10:11:48
Supongo que caro se refiere a esto:


F1 := TForm1.Create(Application);
F1.show;
F2 := TForm1.Create(Application);
F2.show;
F3 := TForm1.Create(Application);
F3.show;
....


Puedes crear tantas instancias del formulario como necesites.

ManuelPerez
19-09-2007, 19:32:04
El problema es como relacionar los form creados con lo programado en el form principal..
Es decir si yo hago
F3:=TForm1.Create(Self)
F2:=TForm1.Create(Self)
Como relaciono el F3 o F2 con el que se creo en el TForm1
Form1:TForm1
No se si soy claro en el codigo del Form1 yo lo nombre varias veces en cada método o función y como se van a relacionar los F3 o F2 en ese caso????
No se si me entienden yo quiero clonar form en los cuales pueda trabajar independientemente , pero a la vez son iguales en composición.

ayudaaaaa
gracias:confused:

maeyanes
19-09-2007, 19:44:28
Hola...

Si te explicas mejor... :p

Mira, los formularios los puedes crear tantas veces necesites... así como te explicó Neftali...

Por que no pones algo del código de lo que quieres conseguir?


Saludos...

paldave
19-09-2007, 20:36:35
Creo entender que en el código del form1 te refieres varias veces al formulario de facturas, que supongo se debe llamar algo así como FacturaForm.
Si tienes varios de ellos abiertos a la vez y quieres dirigirte a todos ellos lo que debes hacer es, cada vez que te refieras a ese formulario, comprobar todos los forms que tienes abiertos, y si son del tipo TFacturaForm entonces llevar a cabo las acciones deseadas, en código sería algo así:
for f := 0 to Screen.FormCount - 1 do
if Screen.Forms[f] is TFacturaForm then
TFacturaForm(Screen.Forms[f]).Caption:='este es un form de factura';
y si los creas desde el Form1 la declaración correcta para crearlos sería:
F1:=TFacturaForm.Create(Self)

Espero sea ese tu problema. Te saludo atentamente.

ManuelPerez
19-09-2007, 21:07:16
:)Voy a probar con eso.
Muchas gracias

eduarcol
19-09-2007, 21:20:13
No se si te entendi, pero si lo que te preocupa es la declaracion

Form1: TForm1

Form1 en este caso es una variable, tal como Form2 y Form3 y todos heredan de TForm1 q es la clase donde programastes todo

Neftali [Germán.Estévez]
20-09-2007, 10:29:57
El problema es como relacionar los form creados con lo programado en el form principal..

Si las variables de los forms (F1, F2, F3,...) son accesibles, tendrás acceso a los formularios.
No te entendí.:(