Hola.
He estado consultando en el foro sobre la manera de trabajar con matriz de controles y en el Tutorial de Erel https://www.b4x.com/android/forum/threads/tick-tack-toe-working-with-arrays-of-views.8506/ aparece el siguiente código:
En el buqle se trabaja con el botón "b" y va almacenando las disintas copias en la matriz "Buttons(x, y)" para usos futuros. Cuando Erel lo hace así es porque sebe ser la mejor manera de hacerlo, pero me surge la duda de ¿qué ventaja tiene hacerlo así a trabajar desde un primer momento con la matriz de botones? Algo así como lo siguiente:
Saludos.
He estado consultando en el foro sobre la manera de trabajar con matriz de controles y en el Tutorial de Erel https://www.b4x.com/android/forum/threads/tick-tack-toe-working-with-arrays-of-views.8506/ aparece el siguiente código:
B4X:
Sub Globals
Dim Buttons(3, 3) As Button
Dim lblPlayer As Label
End Sub
Sub Activity_Create(FirstTime As Boolean)
'Create 9 buttons
Dim width, offsetX, offsetY As Int
width = 80dip
offsetX = (100%x - width * 3 - 10dip * 2) / 2
offsetY = (100%y - width * 3 - 10dip * 2) / 2
For x = 0 To 2
For y = 0 To 2
Dim b As Button
b.Initialize("button") 'All buttons share the same event sub
b.TextSize = 30
Activity.AddView(b,offsetX + x * (width + 10dip), offsetY + y * (width + 10dip), width, width)
Buttons(x, y) = b 'store a reference to this view
Next
Next
....
....
End Sub
En el buqle se trabaja con el botón "b" y va almacenando las disintas copias en la matriz "Buttons(x, y)" para usos futuros. Cuando Erel lo hace así es porque sebe ser la mejor manera de hacerlo, pero me surge la duda de ¿qué ventaja tiene hacerlo así a trabajar desde un primer momento con la matriz de botones? Algo así como lo siguiente:
B4X:
Sub Globals
Dim b(3, 3) As Button
Dim lblPlayer As Label
End Sub
Sub Activity_Create(FirstTime As Boolean)
'Create 9 buttons
Dim width, offsetX, offsetY As Int
width = 80dip
offsetX = (100%x - width * 3 - 10dip * 2) / 2
offsetY = (100%y - width * 3 - 10dip * 2) / 2
For x = 0 To 2
For y = 0 To 2
b(x, y).Initialize("button") 'All buttons share the same event sub
b(x, y).TextSize = 30
Activity.AddView(b(x, y),offsetX + x * (width + 10dip), offsetY + y * (width + 10dip), width, width)
Next
Next
....
....
End Sub
Saludos.
Last edited: