Clonación de Objetos en Visual Basic
Muchos de ustedes han tenido la necesitad de usar objetos en un numero intederminado, por ejemplo en los menus de Archivos se ponen los ultimos archivos abierto, o quizas abrir un mismo formulario muchas veces pero que trabajen con datos diferentes, un formulario de busqueda 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 Menus y TextBox 😀
En un Formulario:
Crear el Menu 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
Colocamo 3 botones de comando y lo llamaremos
cmdClonarMenu
cmdClonarTextBox
cmdClonarFormulario
Ahora el Codigo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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 'Asi que le pongo como nuevo TOP, el Alto + el TOP del Anterior 'Y asi quedará dejabo 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 Clonacion propiamente dicha, es más manejo de 1 matriz de controles, agregando un elemento basado en el primero y modificandolo, pero se tiene el efecto de Clonacion para efectos practicos
1 comentario. Dejar nuevo
¿Que beneficios hay al clonar un objeto, como por ejemplo un recordset?
¡Saludos!