![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Autoajustes de campos.
Hola, tengo una DBGrid asociada a una tabla en la que los campos que se muestran en la rejilla pueden variar en función de la configuación del usuario. Debido a que la zona de la pantalla en la que se encuentra la rejilla tiene una anchura limitada, me gustaría que la anchura de las columnas del dbgrid se ajustara automáticamente a la anchura del registro más ancho de cada columna. De esa forma siempre estaría optimizado al máximo las columnas y el espacio disponible. El problema es que la DBGrid ahora casi lo hace, es decir, en los campos pequeños lo hace bien, pero si el campo es texto y es grande (30 o 40 caracteres) siempre corta el final en todos. Además no quiero que el usuario tenga que estar redimensionando las columnas de forma manual.
¿Existe alguna forma de que el DBGrid autoajuste automáticamente la anchura de las columnas al valor más ancho de cada columna? Salu2. |
#2
|
||||
|
||||
![]() No existe un método asociado al dbGrid que haga eso, que yo sepa, pero, dando por hecho que la fuente del dbgrid va a ser siempre la misma, te puedes "inventar" una manera de controlarlo, guardando el ancho máximo que alcance una columna en el evento afterpost de la tabla. O sea, calcula en este evento el ancho en puntos que va a ocupar cada campo en el dbgrid, utilizando el método dbGrid1.Canvas.TextWidth('Texto que ha guardado el campo'). Si el ancho supera el último valor guardado, lo sustituyes. Estos valores los utilizas al abrir el form que tenga el dbgrid para configurar el ancho de cada columna, y listo.
Salu2.
__________________
Tengo las manos llenas de dedos... Tengo los dedos llenos de teclas... Tengo las teclas desordenadas... Tengo el desorden muy controlado... Tengo el control en mis manos. Última edición por German fecha: 27-09-2004 a las 14:06:27. |
![]() |
|
|
![]() |
|