FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Mantener las propiedades de un DBGrid !!!
Tengo problemas para mantener las propiedades, que le defino a un DBGrid (DBGrid1) por codigo, luego de actualizar el ADOStoredProc (sp1) que lo alimenta haciendo un Open-Close del mismo.
Puntualmente las propiedades que se modifican, son las referidas a las columnas, por medio de Columns[x]: ancho, letra, tamaño. El resto queda igual que antes de actualizar... Estuve modificando el orden de las lineas, pero no logro solucionar el problema. Desde ya agradezco vuestra ayuda. Un abrazo. Envio la Unit1, para aclarar mejor el tema:
|
#2
|
||||
|
||||
Te ocurre porque cada vez que abres el ADOStoredProc, el DBGrid, es "repintado" para actualizarlo con los datos devueltos (perdiéndose las propiedades de las columnas especificadas en tiempo de ejecución). Se me ocurren dos opciones para tu problema: una es definir las columnas en tiempo de diseño, a través de la propiedad "Columns", para que te mantenga las propiedades de las columnas (esto sólo es válido si siempre te devuelve las mismas columnas, que es lo habitual), y otra es que en el evento "OnDrawColumnCell" del DBGrid definas las propiedades para cada columna (este evento es llamado cada vez que el DBGrid necesita ser "repintado", lo que te asegura que las columnas aparecerán como quieres).
Saludos! Última edición por jmariano fecha: 25-08-2005 a las 21:58:26. |
#3
|
||||
|
||||
Yo tengo un punto de vista diferente.
Al abrir las consultas, se lee la propiedad DisplayWidth de cada campo y entonces se modifica el ancho de las columnas. Yo pondría el código que módifica el ancho despues de abrir las consultas. la fuente y demás no hace falta. Un saludo |
#4
|
|||
|
|||
Probando soluciones...
Desde ya, agradezco a ambos por vuestras respuestas...
Probe todas las variantes que propusieron:
|
#5
|
||||
|
||||
El efecto de barrido o parpadeo ocurre porque, en Windows, los controles necesitan ser "repintados" cada dos por tres debido a ciertas acciones (una ventana es arrastrada o una ventana tapa a otra, etc.).
La mejor solución es la que te dio Lepe si lo quieres hacer por código, si no es mejor definir las columnas por diseño. Hacer la función es fácil, podrías, por ejemplo, añadir un método al formulario que contiene el DBGrid para que actualice las columnas:
|
#6
|
|||
|
|||
Muchas gracias JMariano... con ambos datos ya soluciono el problema !!!
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|