Spanish Reconocer etiquetas según su propiedad Tag

ngr888

Member
Hola de nuevo.
En el ejemplo SecondProgram de B4X Getting Started vi cómo utilizar btn y Sender para averiguar qué botón se había pulsado en el evento_Click.
Quiero hacer algo similar para poner un texto en una serie de etiquetas con distintos Tag s.
La situación es que son muchas labels, quiero fijar su texto dentro de un bucle, en lugar de recorrerlas de una en una.

Algo así como:

For i =1 to n
....lblgenerica.(Tag=i).text = cadena(i) 'cadena(i) es diferente en cada caso
Next
Que, tal como lo escribo, no funcionaría ¡claro!
El número de etiquetas puede ser muy grande, tal vez 50.

¿Alguna ayuda?

Gracias.

.
 

José J. Aguilar

Expert
Licensed User
Hola:

Prueba algo así (encierra el código en tus post entre etiquetas [code] ... tu código ... [/code])
B4X:
    Dim l As List
    l.Initialize
    l.AddAll(Array As Object(Label1, Label2, Label3, Label4))
    For i = 0 To l.Size - 1
        Dim lbl As Label = l.Get(i)
        lbl.tag = i
        lbl.text = "Texto " & i
    Next
 
Last edited:

ngr888

Member
Gracias, José J.
Tengo que buscar un rato para probarlo. A buen seguro que funcionará.
Igual que cuando ponga código...
B4X:
log("Ya veo")
.
Me despista mucho (todavía) pensar en POO.
Gracias de nuevo.
 

ngr888

Member
Hola, José J. Aguilar.

He probado el código para recorrer una lista de etiquetas añadiendo un array con los diversos textos.
Para 6 etiquetas:

B4X:
' En Sub Globals
Din t(6) as String
' En Activity create
For i = 0 to 5
  t(i) = " Etq " & i+1  ' Son sólo de prueba
Next
...
' Luego en el bucle que indicabas
lbl.Text = t(i)
..

Funciona perfectamente. Hace lo que necesitaba. Gracias.
 
Top