Buenas tardes,
una pregunta, tengo unos controles a los que les quiero cambiar propiedades de visualización según el resultado de un Rand().
Esa operación de Rand me da parte del nombre del control, ahora bien una vez obtenido quiero poder acceder a ese control para hacerlo visible dinaḿicamente.
Ejemplo:
Tengo una label que tiene como nombre lbl01
bien el algoritmo de Rand(1,10) me da como reultado 1, yo le agrego el 0 al resultado para dejarlo en dos digitos, por tanto ya tengo el 01.
bien ahora me gustaría, sabiendo que tengo control que se llama lbl01, poder hacer un eval() o otra función para poder acabar haciendo al control un .visible=true.
Gracias.
...quizás este simple ejemplo podría ayudar:
Código:
Public Sub Form_Open()
Dim i As Integer
Me.Show
Wait 0.5
lbl01.Visible = False
lbl01.Text = "1"
lbl02.Visible = False
lbl02.Text = "2"
lbl03.Visible = False
lbl03.Text = "3"
lbl04.Visible = False
lbl04.Text = "4"
lbl05.Visible = False
lbl05.Text = "5"
lbl06.Visible = False
lbl06.Text = "6"
lbl07.Visible = False
lbl07.Text = "7"
lbl08.Visible = False
lbl08.Text = "8"
lbl09.Visible = False
lbl09.Text = "9"
lbl10.Visible = False
lbl10.Text = "10"
Do
i = Rand(1, 10)
Me.Children[i - 1].Visible = True
Wait 1
Me.Children[i - 1].Visible = False
Loop
End
Este simple ejemplo supone que las "Label" se coloquen en la
Form una tras otra sin solución de continuidad, siguiendo el orden de numeración presente en su propio nombre.
(15-08-2020, 18:18)vuott escribió: [ -> ]...quizás este simple ejemplo podría ayudar:
Código:
Public Sub Form_Open()
Dim i As Integer
Me.Show
Wait 0.5
lbl01.Visible = False
lbl01.Text = "1"
lbl02.Visible = False
lbl02.Text = "2"
lbl03.Visible = False
lbl03.Text = "3"
lbl04.Visible = False
lbl04.Text = "4"
lbl05.Visible = False
lbl05.Text = "5"
lbl06.Visible = False
lbl06.Text = "6"
lbl07.Visible = False
lbl07.Text = "7"
lbl08.Visible = False
lbl08.Text = "8"
lbl09.Visible = False
lbl09.Text = "9"
lbl10.Visible = False
lbl10.Text = "10"
Do
i = Rand(1, 10)
Me.Children[i - 1].Visible = True
Wait 1
Me.Children[i - 1].Visible = False
Loop
End
Este simple ejemplo supone que las "Label" se coloquen en la Form una tras otra sin solución de continuidad, siguiendo el orden de numeración presente en su propio nombre.
Muy interesante y útil, una consulta, y puedo acceder a los elementos de Children por el nombre en vez de por el indice?
Digamos que el Rand lo realizo antes, obtengo el número 01 y luego se que el nombre del objecto va a ser lbl01
Saludos.
(15-08-2020, 18:46)calcena escribió: [ -> ]Digamos que el Rand lo realizo antes, obtengo el número 01
La única manera de obtener el valor, devuelto por la función
Rand(), precedido de un cero, es transformarlo en formato de cadena de dos caracteres.
Una manera simple y eficaz es la de
tincho en su ejemplo, usando la función
Format().