Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: pacegar en Martes 1 de Junio de 2004, 19:11
Título: Duplicar Formulario
Publicado por: pacegar en Martes 1 de Junio de 2004, 19:11
Hola chic@s Necesito en tiempo de ejecucion, el poder duplicar un formulario.
un ejemplo para que me entendais es por ejemplo el tipo archivo->nuevo del Excel.... que me permite tener varias hojas abiertas
Pues yo necesito algo parecido pero para mi aplicación.
Alguien tiene soluciones? Gracias por todo un saludo
Título: Re: Duplicar Formulario
Publicado por: Juanolo en Martes 1 de Junio de 2004, 19:19
Estuve probando algunas ideas, y esta resulta:
Código: Text
Private Sub DuplicaFrm()
Dim frmTemp As Form
Set frmTemp = New form1
frmTemp.Show
End Sub
Espero sirva para lo que necesitas.
Salu2. :hola:
Título: Re: Duplicar Formulario
Publicado por: pacegar en Miércoles 2 de Junio de 2004, 11:24
ok, perfecto! Muchas gracias por la rápida contestación
Título: Re: Duplicar Formulario
Publicado por: pacegar en Miércoles 2 de Junio de 2004, 13:58
Ok, todo bien Pero a la hora de saber el form activo de los muchos que tengo abiertos, ¿como lo se? Porque con la propiedad .name me devuelve el nombre original.
Necesito saber cual es el formulario activo, porque hago unos procesos en otro formulario y luego retorno valores al formulario origen.
(no se si me he explicado bien, asi que pongo un ejemplo mas gráfico)
form01 form02 form02 --> (formularios iguales duplicados) \ | / \ | / FormProceso | debe devolver los valores al formulario que lo solicito (form01, form02 o form03)
Título: Re: Duplicar Formulario
Publicado por: Blag en Miércoles 2 de Junio de 2004, 18:20
Es muy sencillo B)
Declara un objeto tipo form, en un módulo y hazlo público:
Código: Text
Public ActiveForm As Form
Luego, en el Form_Activate de cada formulario generado, es decir, en el principal, para que los generados lo hereden, coloca el nombre del formulario.
Código: Text
Private Sub Form_Activate()
Set ActiveForm = New frmTemp
End Sub
Así, obtienes en la variable ActiveForm, el nombre del formulario activo.
Saludos,
Blag :devil:
Título: Re: Duplicar Formulario
Publicado por: damian_dmn en Jueves 3 de Junio de 2004, 04:42
mira tenes una forma facil de controla todo
en un modulo creas un arreglo donde el tipo sea el formulario que queres multiplicar y un contador con valor inicial 0
Código: Text
dim forms() as frmMaestro
contador as integer
contador=0
y en el formulario donde lo creas pones
Código: Text
redim preserve forms(contador) as frmMaestro
forms(contador)=new frmMaestro
contador=contador+1
y ahi tenes un arreglo dinamico de formularios, para llamarlos por el indice