Muchos de ustedes han tenido la necesitad de usar objetos en un número indeterminado, por ejemplo en los menús de archivos se ponen los últimos archivos abierto, o quizás abrir un mismo formulario muchas veces pero que trabajen con datos diferentes, un formulario de búsqueda es siempre lo mismo pero cambia la consulta.
Lo primero que debemos tener es objeto a clonar con su propiedad index en 0 (o cualquier otro valor)
Vamos a hacer un Ejemplo clonando Menús y TextBox 😀
En un Formulario:
crear el menú de esta manera
mnuPrueba
submenu -> mnuSubMenu y poner en el TextBox el Valor 0
Pegamos 1 TextBox y lo llamaremos txtClonar
de la misma manera en su propiedad index le ponemos el Valor 0
Colocamos 3 botones de comando y lo llamaremos
cmdClonarMenu
cmdClonarTextBox
cmdClonarFormulario
Ahora el código
Option Explicit Private Sub cmdClonarMenu_Click() 'cargamos un nuevo index, count en su primer momento tiene 1 Load mnuSubMenu(mnuSubMenu.Count) 'Le ponemos un titulo, esta vez uso Count -1 porque 'al cargar el objeto con la linea anterior su valor aumento en 1 mnuSubMenu(mnuSubMenu.Count - 1).Caption = "Sub Menu Clonado " & mnuSubMenu.Count - 1 'Lo Mostramos mnuSubMenu(mnuSubMenu.Count - 1).Visible = True End Sub Private Sub cmdClonarTextBox_Click() Load txtClonar(txtClonar.Count) 'Como es un Clon va a tener el mismo Top y Left que el Original 'Así que le pongo como nuevo TOP, el Alto + el TOP del Anterior 'Y así quedará debajo txtClonar(txtClonar.Count - 1).Top = txtClonar(txtClonar.Count - 2).Top + txtClonar(txtClonar.Count - 2).Height txtClonar(txtClonar.Count - 1).Visible = True End Sub Private Sub cmdClonarFormulario_Click() Dim X As frmClonar Set X = New frmClonar X.Show End Sub
Ahora presionen los botones y los controles se clonaran 😀
Si clonan un formulario, cada uno será independiente con respecto al manejo de sus propias variables
Saludos
Observación: Esto no es una clonación propiamente dicha, es más manejo de 1 matriz de controles, agregando un elemento basado en el primero y modificándolo, pero se tiene el efecto de clonación para efectos prácticos
¿Que beneficios hay al clonar un objeto, como por ejemplo un recordset?
¡Saludos!