Creando controles en tiempo de ejecución

Iniciado por Mad Antrax, 1 Septiembre 2006, 12:34 PM

0 Miembros y 1 Visitante están viendo este tema.

Mad Antrax

En algunos casos hemos querido crear un nuevo control cuando ya hemos terminado nuestra aplicación. Supongamos un ejemplo que tenemos un formulario con 2 cajas de texto, pero según el usuario que lo ejecute se necesitarán más cajas de texto. Este efecto se llama: "Cargar controles en tiempo de ejecución". Veamos un ejemplo práctico:

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:

   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:


    MsgBox "Hola, soy la caja " & Index


6) Insertamos un nuevo botón 'Command2' y escribimos el siguiente código en el evento Click():


    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.
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

WarGhost

Muy bueno MadAntrax aunque esto ya tiene algo de tiempo exactamente tiene como 5 años xD.

http://www.elguille.info/VB/ejemplos/controlesdinamicos.htm

Pero el tuyo esta mejor explicado.

;) Salu2, WarGhost
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?