Empezó como una consulta a un problema... pero ya está resuelto.
Por si alguien no sabe como hacerlo, o le interesa... lo dejo a modo de código de ejemplo.
Sirve para crear dinámicamente en tiempo de ejecución, un panel que contiene labels y botones con la información de un objeto de un inventario.
Espero que os sirva de algo.
Una vez creados los paneles y almacenados en la lista Paneles, el usuario puede borrar uno de los paneles... con lo que toca cambiar todas las etiquetas de número de panel y el tag al botón borrar.
Para acceder a los paneles, después de haber borrado uno, lo hago de la siguiente forma:
Por si alguien no sabe como hacerlo, o le interesa... lo dejo a modo de código de ejemplo.
Sirve para crear dinámicamente en tiempo de ejecución, un panel que contiene labels y botones con la información de un objeto de un inventario.
Espero que os sirva de algo.
B4X:
Sub Crear_Objeto( Serie As String, Titulo As String, Contenido As String)
Dim Panel_Objeto As Panel
Dim lblSerie As Label
Dim lblTitulo As Label
Dim lblNum As Label
Dim btnContenido As Button
Dim btnBorrar As Button
Dim btnObservaciones As Button
Dim ScreenWidth As Int
ScreenWidth = GetDeviceLayoutValues.Width
#region N.Inventario
Panel_Objeto.Initialize("")
Panel_Objeto.Color=Colors.DarkGray
lblSerie.Initialize("")
lblSerie.Text=NumberFormat2(Serie,4,0,0,False)
lblSerie.TextSize = 20
lblSerie.TextColor=Colors.White
lblSerie.Color=Colors.Blue
lblSerie.Gravity=Gravity.CENTER_HORIZONTAL + Gravity.CENTER_VERTICAL
Panel_Objeto.AddView(lblSerie,5dip,5dip,60dip,35dip)
#end region
#region Titulo
lblTitulo.Initialize("")
lblTitulo.Text=" " & Titulo
lblTitulo.TextSize = 14
lblTitulo.TextColor=Colors.White
lblTitulo.Color=Colors.Black
lblTitulo.Gravity=Gravity.LEFT + Gravity.CENTER_VERTICAL
Panel_Objeto.AddView(lblTitulo,70dip,5dip,260dip,35dip)
#end region
#region Boton_Contenido
btnContenido.Initialize("btnContenido")
btnContenido.Text="Contenido"
btnContenido.Tag=Serie
Panel_Objeto.AddView(btnContenido,5dip,45dip,85dip,35dip)
#end region
....
Paneles.Add(Panel_Objeto)
NPaneles = NPaneles + 1
CrearListado
End Sub
Una vez creados los paneles y almacenados en la lista Paneles, el usuario puede borrar uno de los paneles... con lo que toca cambiar todas las etiquetas de número de panel y el tag al botón borrar.
Para acceder a los paneles, después de haber borrado uno, lo hago de la siguiente forma:
B4X:
Sub CrearListado
Dim numpanel As Int = 0
Panel_main.Panel.RemoveAllViews
For Each p As Panel In Paneles
'Dim panel As Panel
'panel=p
Dim Numero As Label
Dim borrar As Button
borrar = p.GetView(4)
borrar.Tag = numpanel
Numero = p.GetView(5)
Numero.Text="#" & NumberFormat2(numpanel,2,0,0,False)
Panel_main.Panel.AddView(p,2%x,(1%y+(85dip*numpanel)),96%x,80dip)
numpanel = numpanel + 1
Panel_main.Panel.Height = 85dip*numpanel
Next
Panel_main.Panel.Height = Panel_main.Panel.Height + 5dip
Panel_main.Invalidate
End Sub
Last edited: