Spanish (SOLUCIONADO) Uso de macros en B4A

J M Movilla Cuadrado

Member
Licensed User
Con el fin de evitar repetir nueve veces esto:
B4X:
SetLabelTextSize(Label1, Label1.Text,14,12)
Label1.Gravity = Bit .Or( Gravity .CENTER_VERTICAL, Gravity .CENTER_HORIZONTAL)

SetLabelTextSize(Label2, Label2.Text,14,12)
Label2.Gravity = Bit .Or( Gravity .CENTER_VERTICAL, Gravity .CENTER_HORIZONTAL)
    ...

me gustaría utilizar un código que en Visual Basic utilizo habitualmente, pero que aquí no me reconoce la asignación de lbl="Label" & cI. Indudablemente porque lo estoy haciendo mal...
B4X:
    Dim i As Int = 0
    Dim cI As String=""
    Dim lbl As Label
 
    For i = 1 To 9
        cI=i
        lbl="Label" & cI
        SetLabelTextSize(lbl, lbl.Text,14,12)
        lbl.Gravity = Bit .Or( Gravity .CENTER_VERTICAL, Gravity .CENTER_HORIZONTAL)
    Next

A buen seguro que ya tengo resuelto el problema con la respuesta que espero de vosotros. Gracias.
 
Last edited:

J M Movilla Cuadrado

Member
Licensed User
Perdón por haber preguntado sin consultar adecuadamente antes... He encontrado la solución que da Erel en un post de 23 de diciembre de 2013. Y, siguiendo sus instrucciones, lo he resuelto así:
B4X:
    For Each lbl As Label   In  Panel1.GetAllViewsRecursive
        SetLabelTextSize(lbl, lbl.Text,14,12)
        lbl.Gravity = Bit .Or( Gravity .CENTER_VERTICAL, Gravity .CENTER_HORIZONTAL)
    Next
 
Top