SoloCodigo

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
  1.  
  2. Private Sub DuplicaFrm()
  3.     Dim frmTemp As Form
  4.     Set frmTemp = New form1
  5.     frmTemp.Show
  6. End Sub
  7.  
  8.  

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
  1. Public ActiveForm As Form
  2.  

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
  1.  
  2. Private Sub Form_Activate()
  3. Set ActiveForm = New frmTemp
  4. End Sub
  5.  
  6.  

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
  1.  
  2. dim forms() as frmMaestro
  3. contador as integer
  4. contador=0
  5.  
  6.  

y en el formulario donde lo creas pones
Código: Text
  1.  
  2. redim preserve forms(contador) as frmMaestro
  3. forms(contador)=new frmMaestro
  4. contador=contador+1
  5.  
  6.  

y ahi tenes un arreglo dinamico de formularios, para llamarlos por el indice

cualquier cosa que necesites me mandas un mail

bye