Programa con Xojo dese Cero: listas jerárquicas

    Programa con Xojo dese Cero: listas jerárquicas

    Continuamos mejorando nuestra aplicación "Gastos personales", por lo que ahora usamos la capacidad de ListBox para mostrar datos jerárquicamente (es decir, con varios niveles de sangría).

    Esto ahora nos permitirá mostrar en el ListBox todos los gastos agrupados en cada una de las categorías a las que pertenecen, con la posibilidad de expandir o contraer cada una de las categorías de la lista según se desee.


    Por tanto, ganaremos en organización a la hora de mostrar al usuario los diferentes elementos correspondientes a cada una de las categorías de gasto.


    De hecho, ListBox es uno de los controles de interfaz de usuario más potentes y flexibles que puedes encontrar en la biblioteca IDE de Xojo. Si echas un vistazo a la documentación de este componente (https://docs.xojo.com/ListBox), te darás cuenta de hasta qué punto se puede personalizar el comportamiento de la lista, tanto desde el punto de vista gráfico (recuerda de capítulos anteriores que Graphics es la clase que nos da todo lo que necesitamos para "pintar" nuestra interfaz de usuario), además del comportamiento.

    Durante el curso ya hemos visto algunas de sus capacidades, como la correspondiente a ordenar los datos en cada una de las columnas, así como también cómo podemos añadir datos a las diferentes columnas de una nueva fila, acceder a un dato concreto, etc.

    Bueno, en este capítulo nos enfocaremos en otros métodos disponibles en el ListBox, estos son los que nos permiten indicarle al ListBox que queremos agregar una nueva fila de datos con el comportamiento "ampliable" a través del método AddExpandableRow (https : //docs.xojo .com / ListBox.AddExpandableRow).

    Hacerlo también nos da la posibilidad de agregar controladores de eventos ExpandRow (https://docs.xojo.com/ListBox.ExpandRow) y CollapseRow (https://docs.xojo.com/ListBox.CollapseRow).


    Estos son los eventos que se dispararán en el control cada vez que el usuario haga clic en el widget de flecha (elemento gráfico) asociado a cada una de las filas expandibles sobre las que se puede actuar.


    Dado que, por ejemplo, en ExpandRow recibimos como parámetro el número de fila que queremos mostrar, será este el que usaremos para rellenar (y por tanto hacer visible) el resto de filas (o elementos) correspondientes. a los gastos de la categoría que acabamos de terminar.

    Otro método interesante de ListBox, cuando se usan listas jerárquicas, es RowDepthAt (https://docs.xojo.com/ListBox.RowDepthAt).

    Esto nos permitirá conocer el valor de la sangría, o "profundidad" en la jerarquía de la lista, correspondiente al número de línea que le pasamos como argumento. Entonces, por ejemplo, una fila de nivel superior devolverá el valor cero (0), mientras que si la fila cuelga directamente de un nivel superior de la jerarquía, devolverá el valor uno (1), y así sucesivamente a medida que profundice en la jerarquía de una fila raíz o de nivel superior.


    Quizás en este momento parezca más complejo de lo que realmente es; pero seguro que cuando veas el tutorial, y lo pongas en práctica, te darás cuenta de que no es así.

    ¡Pronto comenzará a utilizar listas jerárquicas en sus proyectos!

    Además, lo que es más importante, no es necesario limitarse a usar filas desplegables solo en el primer nivel de la jerarquía, sino que puede incrustar filas desplegables dentro de la jerarquía de cualquier otro elemento que también sea desplegable.


    Un buen ejemplo de este tipo de comportamiento en acción, que te recomiendo que le eches un vistazo, es el que puedes encontrar en el proyecto de ejemplo "FileBrowser" incluido en la carpeta Proyectos de ejemplo > Escritorio > Controles > ListBox.

    Javier Rodríguez

    • ingeniero xojo
    • Twitter: @xojoes
    • Facebook: http://facebook.com/xojoes/
    • Descarga la última versión de www.xojo.com
    • Recursos de Xojo en español: https://docs.xojo.com/spanish

    Añade un comentario de Programa con Xojo dese Cero: listas jerárquicas
    ¡Comentario enviado con éxito! Lo revisaremos en las próximas horas.