Comunidad Gambas-es

Versión completa: Nueva versión del control gvColumFixer
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Estos días he estado repasando viejos proyectos y he encontrado el gvColumnFixer, un GridView que permite fijar columnas de manera que no les afecte el scroll horizontal, permaneciendo visibles siempre. Es un proyecto que tiene ya algunos años en el que Gianluigi, del foro italiano me ayudó con algunos detalles estéticos, pero que al repasarlo no me acababa de convencer: sólo valía para bases de datos y tenía algunas carencias evidentes.

Lo he modificado, ampliado y simplificado, de manera que se comporte como un Gridview normal salvo que ofrece tres propiedades nuevas:  FixedColumns, un array con los números de columnas a fijar; FixedForeground, el color del texto de las columnas fijadas y FixedBackground el color de fondo de las columnas fijadas. Como cualquier gridview se puede rellenar a través del metodo _Data o directamente a las celdas.

[Imagen: w2DKxyL.png]

Lo podéis encontrar aquí: https://gitlab.com/shordi/gvColumnFixer y en la Granja (aunque en la granja no respondo de su actualización)

Espero que os sea útil.

Saludos
He actualizado el gitlab y la granja con la versión 1.0.3, que añade a las propiedades de la Clase ( FixedColumns, FixedForeground, y FixedBackground), más propiedades de la Clase Gridview, a saber:

ShowCursor, Mode, Header, ScrollBar, Row, Column, Grid, Padding, Font, Rows, Columns, Current y Data.

Así como los eventos:

Data, Change, Select, Activate, Click, Scroll y Font.

No están todas las propiedades ni todos los eventos, pero con estas se soluciona el 90% de los manejos de un GridView. Si alguien quiere añadir algún otro o modificarlo, que me lo diga, que estaré encantado de añadirlo o, mejor aún, que lo añada él y me lo pase después.

La idea es que se pueda ser manejado y se comporte como un gridview normal con esteroides, que se maneje como siempre y al que se le pueden Fijar columnas... o no.

Saludos
(12-07-2022, 10:50)Shordi escribió: [ -> ]Si alguien quiere añadir algún otro o modificarlo, que me lo diga, que estaré encantado de añadirlo o, mejor aún, que lo añada él y me lo pase después.

La idea es que se pueda ser manejado y se comporte como un gridview normal con esteroides, que se maneje como siempre y al que se le pueden Fijar columnas... o no.

en agosto le echo un vistazo y lo intento usar, a ver si se me ocurren ideas que puedan servir, o al menos para probar el funcionamiento., gracias por compartir.
En el repo no esta la base de datos, por lo que da error en esta linea:
GAMBAS
  1. Copy "distancias.db" To user.home &/ "distancias.db"


Voy a poner otra base de datos a ver que pasa.
ok, le puse otra base y funciono.
Todo parece ir muy bien, solo que hay un efecto que no se si es intencional o no, pero cuando re-dimensiono las columnas fijadas la otras (las no fijadas) no se desplazan.
[Imagen: cQHnMIX.gif]
Es intencional. No porque me guste más así, más bien porque no sé cómo coordinar el ancho de una de las columnas fijas con el ancho de todas las columnas no fijas. Estamos tratando con dos gridviews separados sobre un splitter. La coordinación del ancho de los dos gridviews es trivial (la hace el splitter), pero a nivel de columna es otro tema....

Aún así tu comentario me ha servido para descubrir que con la versión subida puede darse la confusión al pulsar y arrastrar entre los dos gridviews de si estás cambiando el tamaño de la última columna fija o del segundo gridview. Le he quitado la propiedad .resizable a la última columna fija y ahora no hay problemas.


Saludos.

Añadida esa base de datos que faltaba. Ahora la demo debería funcionar sin problemas.

Saludos