Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

¿Cambiar el orden de los controles de un HBox por código?
#1

Buenas tardes,

¿Alguien sabe cómo cambiar por código el orden en que un HBox muestra los controles?.
Al añadir los controles al HBox en diseño los coloco en un orden y así los muestra en ejecución. Si tengo 5 controles en diseño y añado un sexto por código, siempre lo muestra a la derecha, ¿se podría poner en tercer lugar, o el segundo?.

El único ejemplo que he visto es el código de Toolbar, que usa un panel oculto donde mueve los controles, y vuelve a colocar con otro orden en el Toolbar visible. ¿No hay una manera más sencilla?.

He probado con varios contenedores y todos hacen lo mismo. Gracias y un saludo.
Harpo.
    ¡Gracias!
#2

Prueba este código: -

GAMBAS
  1. ' Gambas class file
  2.  
  3. Hbox1 As HBox
  4. ToolButton1 As ToolButton
  5.  
  6. Public Sub Form_Open()
  7.  
  8.   BuildForm
  9.  
  10.  
  11. Public Sub BuildForm()
  12.  
  13.   Dim sText As String[] = ["add", "ok", "access", "right", "left", "up", "down", "battery", "color", "contrast", "copy"]
  14.   Dim iLoop As Integer
  15.  
  16.   With Me
  17.     .Arrangement = Arrange.Vertical
  18.     .H = 50
  19.     .W = 400
  20.     .Padding = 5
  21.  
  22.   With Hbox1 = New HBox(Me) As "Hbox1"
  23.     .H = 28
  24.  
  25.   For iLoop = 0 To sText.Max
  26.     With ToolButton1 = New ToolButton(HBox1) As "TBs"
  27.       .H = 28
  28.       .W = 28
  29.       .Tag = iLoop
  30.       .Picture = Picture["icon:/22/" & sText[iLoop]]
  31.     End With
  32.   Next
  33.  
  34.  
  35. Public Sub TBs_Click()
  36.  
  37.  


[-] Los siguientes 1 usuarios dice gracias a cogier por este post:
  • Harpo
    ¡Gracias!
#3

(12-03-2022, 19:58)Harpo escribió:  ¿se podría poner en tercer lugar, o el segundo?.

Podrías mover todos los controles del panel a un panel auxiliar oculto y con un bucle for each y con un contador determinar el momento en el que agregar el nuevo antes de mover el siguiente control al panel auxiliar y luego sigues moviendo los existentes, finalmente vuelves a mover todos lo controles del panel auxiliar, que ya incluye el nuevo control en el sitio adecuado, al panel original.
La propiedad es .Reparent
GAMBAS
  1. Public Sub MoveControls()
  2.   Dim obj As Control
  3.   Dim bNew As ToolButton
  4.   For Each obj In pTools.Children
  5.     obj.Reparent(pAux)
  6.     If q = 3 Then
  7.       bNew = New ToolButton(pAux)
  8.       bNew.Tag = "new"
  9.       bNew.H = pTools.H
  10.       bNew.W = pTools.H
  11.     Endif
  12.     Inc q
  13.   Next
  14.    For Each obj In pAux.Children
  15.     obj.Reparent(pTools)
  16.   Next



1 Saludo.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • Harpo
    ¡Gracias!
#4

Muchas gracias a los dos, finalmente lo más práctico que he visto es usar un panel intermedio oculto y un array para guardar el orden deseado. Les dejo un ejemplo por si a alguien le sirve. Se usa la lista de un ListBox.

Un saludo, Harpo.


Archivos adjuntos
.tar OrderHBox.tar Tamaño: 50 KB  Descargas: 1
[-] Los siguientes 1 usuarios dice gracias a Harpo por este post:
  • Grandamakulo
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)