Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: erbuson en Marzo 24, 2010, 08:52:12 pm
-
Hola, se que se pueden referenciar objetos por su nombre a partir de la coleccion Controls de la siguiente manera:
DIM MiNombre As String, Numero as Integer
For Numero = 1 to 3
MiNombre = "Label" & Numero
Me.Controls(MiNombre).ForeColor = vbRed
Next
Pero, � sabr�a alguien decirme si teniendo en cuenta que tengo el objeto Label1(0) puedo a�adir nuevos elementos con el Load al array Label() con el Load, algo as� como Load Me.Controls("Label" & Numero ...) ? la duda es que no se me ocurre como referenciarle el Index que debe crear.
Gracias
Añado este comentario, ya que parece ser que la cosa va por ahí:
set Cmd1 = Controls.Add("vb.commandbutton", "Cmd1")
aunque no acabo de cogerle el tranquillo por muchas vueltas que le doy a este enlace http://www.vbforums.com/showthread.php?t=342054
-
Hola, se que se pueden referenciar objetos por su nombre a partir de la coleccion Controls de la siguiente manera:
DIM MiNombre As String, Numero as Integer
For Numero = 1 to 3
MiNombre = "Label" & Numero
Me.Controls(MiNombre).ForeColor = vbRed
Next
Pero, ¿ sabría alguien decirme si teniendo en cuenta que tengo el objeto Label1(0) puedo añadir nuevos elementos con el Load al array Label() con el Load, algo así como Load Me.Controls("Label" & Numero ...) ? la duda es que no se me ocurre como referenciarle el Index que debe crear.
Gracias
Seria algo asi
Private Sub Form_Load()
For i=0 to n
Load Label(i + 1)
Next
End Sub
Te dejo un Link para que veas un http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/12.htm (http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/12.htm)
Espero te ayude.
Saludos.
-
Gracias, pero este no es el problema, ya que lo que me comentas lo tengo claro, lo que quisiera es poder crearlos de un modo similiar a esto: Load "Label"(i + 1)
-
con CallByName se puede poner el nombre del objeto como string, ya pregunto ssccaann43 algo parecido la otra vez...buscalo..
saludos.
-
En la respuesta que se le dio a ssccaann43 no se parece para nada a lo que yo busco, porque el problema está en que no atino a ver la forma de indicarle el indice. De todos modos gracias pero creo que voy a intentar solucionar el problema de otra manera ya que lo que tenía pensado me lo complicará demasiado para correcciones futuras.
-
En la respuesta que se le dio a ssccaann43 no se parece para nada a lo que yo busco, porque el problema está en que no atino a ver la forma de indicarle el indice. De todos modos gracias pero creo que voy a intentar solucionar el problema de otra manera ya que lo que tenía pensado me lo complicará demasiado para correcciones futuras.
Me.Controls(INTEGER) = object
despues para buscar un control por el name, tenes q hacer un bucle recorriendo el array Me.Controls y comprobando si el Me.Controls(index).Name = lo que buscas.
Function GetElement(Byval strName As String) As Object
Dim objTemp As Object
For Each objTemp In Me.Controls
If objTemp.Name = strName Then
Set GetElement = objTemp
Exit Function
End If
Next
End Function
Fijate si funciona, la hice recien y no lo probe. Saludos