Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ajustar un dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=81071)

jacb1976 07-10-2012 04:26:58

Ajustar un dbgrid
 
Buenas noches, disculpen la pregunta, hay alguna manera de ajustar un dbgrid? es decir que cuando muestre los datos el dbgrid, automaticamente se ajuste la celda al tamaño mas largo de caracteres que tenga, aveces soy algo tonto en explicarme, espero que me haya dado a entender y por su ayuda mil gracias

cancun 07-10-2012 08:28:27

Hola


Pues si debe haber alguna manera de hacer lo que quieres, seria cuestión de hacer algunas pruebas, me parece que tendrias que utilizar el evento OnDrawColumnCell del DBGrid, que es llamado cada que se dibuja una celda, en el puedes calcular el largo de las cadenas y asigmarselo a la propiedad Width de la columna, para saber el largo del texto en el canvas hay una función llamada TextWidth

Código:

Ancho:=Canvas.TextWidth(Column.Field.DisplayText);
Tal vez estoy mal es cuestión de probar, luego nos cuentas como te fue.

Saludos

Casimiro Notevi 07-10-2012 10:49:18

Al final de esta página, abajo del todo, hay unos enlaces que te pueden servir.

Neftali [Germán.Estévez] 08-10-2012 12:58:57

Tal vez esta entrada en el blog de Zarko "Adjusting DBGrid Columns automatically" te pueda ser útil para lo que necesitas.

roman 08-10-2012 21:05:46

Me parece que al artículo de Zarco apunta a otro lado. Ahí se trata de definir columnas con ancho autoajustable al ancho que dejen las columns de ancho fijo. Lo que pide el compañero es autoajustar el ancho de una columna según el dato más largo que contenga.

Creo que esto último es poco factible, al menos si el DBGrid representa muchos registros, puesta que habría que tener todos los registros para saber cuál es el de mayor longitud, y eso puede ser muy costoso en tiempo y recursos.

// Saludos

Neftali [Germán.Estévez] 09-10-2012 09:58:15

Cita:

Empezado por roman (Mensaje 446687)
Me parece que al artículo de Zarco apunta a otro lado. Ahí se trata de definir columnas con ancho autoajustable al ancho que dejen las columns de ancho fijo. Lo que pide el compañero es autoajustar el ancho de una columna según el dato más largo que contenga.

Tienes razón Román, me equivoqué de link (y de artículo).

Sabía que había un artículo de Zarko sobre el tema y me confundí. El correcto es el que se titula "How to Autofit the columns in the DBGrid".
Aunque debes tener en cuenta el comentario de Román, para saber el ancho de la columna, hay que revisar todo el contenido de la columna y eso, si hay muchos registros, puede penalizar la velocidad.


La franja horaria es GMT +2. Ahora son las 13:13:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi