Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: erbuson en Marzo 24, 2010, 08:52:12 pm

Título: Crear nuevos objetos a partir de Controls
Publicado 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





Título: Re:Crear nuevos objetos a partir de Controls
Publicado por: NolO en Marzo 24, 2010, 09:05:25 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

Seria algo asi

Código: (vb) [Seleccionar]
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.
Título: Re:Crear nuevos objetos a partir de Controls
Publicado por: erbuson en Marzo 24, 2010, 09:08:53 pm
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)

Título: Re:Crear nuevos objetos a partir de Controls
Publicado por: seba123neo en Marzo 24, 2010, 10:09:04 pm
con CallByName se puede poner el nombre del objeto como string, ya pregunto ssccaann43 algo parecido la otra vez...buscalo..

saludos.
Título: Re:Crear nuevos objetos a partir de Controls
Publicado por: erbuson en Marzo 25, 2010, 03:40:24 am
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.
Título: Re:Crear nuevos objetos a partir de Controls
Publicado por: coco en Marzo 25, 2010, 01:42:02 pm
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.

Código: (vb) [Seleccionar]
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