Creación de Objetos
Necesito saber como puedo crear objetos (textbox, listbox, etc) en Visual Basic a través de código, es decir, llamar a una función que realice esa tarea.
¡Muchas Gracias!
¡Muchas Gracias!
Dim C as Control
Set C = Controls.Add ("VB.TextBox", "[Un nombre]")
C.Visible = True
Set C = Controls.Add ("VB.Label", "[Un nombre]")
C.Visible = True
Set C = Controls.Add ("VB.CommandButton", "[Un nombre]")
C.Visible = True
...Etc.
o bien:
Dim T1 as TextBox
Dim T2 as TextBox
Dim L1 as Label
Set T1 = Controls.Add ("VB.TextBox", "[Un nombre]")
T1.Visible = True
Set T2 = Controls.Add ("VB.TextBox", "[Un nombre]")
T2.Visible = True
Set L1 = Controls.Add ("VB.Label", "[Un nombre]")
L1.Visible = True
...Etc.
Este código sirve sólo para la versión 6 de VB.
Si usas VB5 tendría que decirte otra cosa (usar arrays de controles, pero necesitas tener siempre un elemento de partida)
Espero que te haya orientado un poco.
Javier
Set C = Controls.Add ("VB.TextBox", "[Un nombre]")
C.Visible = True
Set C = Controls.Add ("VB.Label", "[Un nombre]")
C.Visible = True
Set C = Controls.Add ("VB.CommandButton", "[Un nombre]")
C.Visible = True
...Etc.
o bien:
Dim T1 as TextBox
Dim T2 as TextBox
Dim L1 as Label
Set T1 = Controls.Add ("VB.TextBox", "[Un nombre]")
T1.Visible = True
Set T2 = Controls.Add ("VB.TextBox", "[Un nombre]")
T2.Visible = True
Set L1 = Controls.Add ("VB.Label", "[Un nombre]")
L1.Visible = True
...Etc.
Este código sirve sólo para la versión 6 de VB.
Si usas VB5 tendría que decirte otra cosa (usar arrays de controles, pero necesitas tener siempre un elemento de partida)
Espero que te haya orientado un poco.
Javier
Me fue de gran utilidad la creación de objetos, solo que necesito meterlos dentro de un frame al crearlos.
Hay alguna manera de asignarles a q frame pertenecen?
Hay alguna manera de asignarles a q frame pertenecen?
Tu ejemplo está muy bien, quisiera preguntarte si es posible con éste método programar los eventos de estos controles o si sólo se pueden crear en ejecución y acceder a sus propiedades y métodos (en VB6). Salud.
Hola Teleman:
Se pueden programar los eventos también.
Vamos a tomar el ejemplo del TextBox T1
Debes declarar a nivel de módulo:
Private WithEvents T1 As TextBox
Luego en algún lado:
Set T1 = Controls.Add ("VB.TextBox", "[Un nombre]")
T1.Visible = True
Agrega los procedimientos de los eventos:
Private Sub T1_Change()
' hacer algo
End Sub
Private Sub T1_KeyPress(KeyAscii As Integer)
' hacer algo
End Sub
'etc
Nota para los del foro: sería mejor que avisen por email cuando alguien responde a un mensaje, porque sino uno está obligado a entrar todos los días y ver si alguien le escribió a uno.
Este mensaje lo vi medio de casualidad.
Javier
Se pueden programar los eventos también.
Vamos a tomar el ejemplo del TextBox T1
Debes declarar a nivel de módulo:
Private WithEvents T1 As TextBox
Luego en algún lado:
Set T1 = Controls.Add ("VB.TextBox", "[Un nombre]")
T1.Visible = True
Agrega los procedimientos de los eventos:
Private Sub T1_Change()
' hacer algo
End Sub
Private Sub T1_KeyPress(KeyAscii As Integer)
' hacer algo
End Sub
'etc
Nota para los del foro: sería mejor que avisen por email cuando alguien responde a un mensaje, porque sino uno está obligado a entrar todos los días y ver si alguien le escribió a uno.
Este mensaje lo vi medio de casualidad.
Javier
