1) Empezamos un proyecto en VB6 'EXE Estándar'
2) En nuestro formulario insertamos un cuadro de texto y lo llamamos 'Text'. Insertamos un CommandButton normal.
3) Establecemos la propiedad 'Index' al valor 0
4) En el evento Command1_Click() escribimos el siguiente código:
Código:
For i = 1 To 5
Load Text(i)
Text(i).Visible = True
Text(i).Top = Text(i - 1).Top + Text(i).Height
Next
Este código se encarga de cargar 5 nuevos controles, hay que establecer siempre el Visible = True y cambiar su posición en el formulario.
5) Escribimos el siguiente código en el evento Text_Click(Index As Integer) de la caja de texto:
Código:
MsgBox "Hola, soy la caja " & Index
6) Insertamos un nuevo botón 'Command2' y escribimos el siguiente código en el evento Click():
Código:
MsgBox "Hay " & Text.Count & " cajas de texto"
Ejecutamos el programa y pulsamos el segundo botón, nos dirá que hay solo una caja de texto. Pulsamos el primer botón para cargar los nuevos controles en tiempo de ejecución y pulsamos de nuevo el segundo botón, nos dirá que hay 6 cajas de texto.
Si hacemos click en cada caja de texto nos saldrá un mensaje indicando que caja se está ejecutando.
Para que demonios sirve esto?
Yo lo uso sobretodo para crear una aplicación con multiconexión, (un troyano por ejemplo). Si queremos que el server.exe de nuestro troyano acepte más de 1 conexión simultanea (para controlar a la victima desde 4 ordenadores distintos a la vez, por ejemplo) necesitaremos un módulo que vaya cargando nuevos Winsock en tiempo de ejecución y los vaya dejando a la escucha en puertos diferentes, asi conseguireis un troyano con conexiones 'casi' infinitas.