Clonación de Objetos en Visual Basic

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


Posted

in

by

Comments

Una respuesta a “Clonación de Objetos en Visual Basic”

  1. Luis Enrique Avatar
    Luis Enrique

    ¿Que beneficios hay al clonar un objeto, como por ejemplo un recordset?
    ¡Saludos!

Agregue un comentario a Luis Enrique Cancelar respuesta

Su dirección de correo no se hará público. Los campos requeridos están marcados *