La Web del Programador: Comunidad de Programadores
 
    Pregunta:  12811 - COMO CAMBIO LOS COLORES EN UN DBGRID
Autor:  Gustavo OP
Hola amigos
Estoy realizando una aplicacion donde utilzo un dbgrid y debo mostrar las columnas diferenciadas por colores una diferente de otra, ademas poder seleccionar las columnas que deseo desede su editor de columnas, como tambien puedo realizar calculos de sumas en el mismo dbgrid de forma automatica.

gracias amigos.

  Respuesta:  Hector Luis Collado Fenandez
Para colorer las columnas del dbgrid debes usar el evento OnDrawColunmCell, una vez que estés ahí solo tienes que escribir algo semejante a esto:

var
c: TDBGrid;
begin
c := Sender as TDBGrid;
c.canvas.brush := color deseado según la columna que te indica el evento;
c.canvas.fillrect(rect);
end;

Con esto puedes ponerle color a tus columnas solo tienes que averiguar de que columna se trata manipulando la variable Column que te brinda el evento (Colunm.Title.Caption) y la fila que viene en la variable DataCol. Ahora no recuerdo si eso te saca el texto auque me parece que no, de todas formas revisa el help que ahi está bien explicado pues existe una propiedad llamada DefaultDrawing que es para renderizar lo que lleva el dbgrid por default, en este caso el texto, pero si no es asi tu puedes hacer algo semejante a esto:

texto := IntToStr(Column.Field.AsString);
c.canvas.font.color := color del texto segun fila y columna;
c.canvas.textout(rect.left, rect.top, texto);

Bueno esa más o menos es la idea lo único es que no tengo el Delphi a mano para poder corregir algunos errores de sintaxis que puede haber, de todas formas lete la Ayuda. Espero te haya servido de algo y cualquir cosa ponte en contacto cinmigo.

That's All
EOF