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: