PDA

Ver la Versión Completa : Coloreando un dbgrid


kaeltas
05-02-2009, 18:38:31
Hola a todos mis queridos amigos expertos del clubdelphi !!!

Pues aquí estoy con una pequeña consulta, estoy haciendo un pequeño programa de mantenimiento y resulta que muestro los datos de mi base de datos en un dbgrid

El punto es que los mantenimientos se realizan cada determinadas fechas y me gustaria saber si es posible, pintar o cambiar el color de la "fila" en un "dbgrid" en caso de que el registro excediera una fecha???

Estuve buscando y probando varias opciones pero sin resultado

Me podrían dar un tip o un consejo por favor??

Gracias de antemano

ContraVeneno
05-02-2009, 18:58:08
Estoy seguro que en este enlace (http://www.clubdelphi.com/foros/search.php?searchid=1654062)encontrarás algo que te ayude... si no lo encuentras, con gusto te ayudo a buscar.

kaeltas
05-02-2009, 20:28:43
El enlace no funciona, aparece lo siguiente:
"Lo siento - ningún resultado. Por favor intenta con terminos diferentes."

Lamento mucho la molestia, por cierto antes de postear use el buscador pero no encontre nada

gracias saludos!!

look
05-02-2009, 21:05:56
Hola a todos mis queridos amigos expertos del clubdelphi !!!

Pues aquí estoy con una pequeña consulta, estoy haciendo un pequeño programa de mantenimiento y resulta que muestro los datos de mi base de datos en un dbgrid

El punto es que los mantenimientos se realizan cada determinadas fechas y me gustaria saber si es posible, pintar o cambiar el color de la "fila" en un "dbgrid" en caso de que el registro excediera una fecha???

Estuve buscando y probando varias opciones pero sin resultado

Me podrían dar un tip o un consejo por favor??

Gracias de antemano





procedure TFrCancFAc.DBGrid1DrawDataCell(Sender: TObject;
const Rect: TRect; Field: TField; State: TGridDrawState); begin
if Field.Text = 'Cancelada' then
(Sender as tDBGrid).Canvas.Font.Color := $000F09FF;
(Sender as tDBGrid).Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2,Field.AsString);
end;





este lo utilizo para mostrar en un dbDrid las facturas canceladas en rojo, por defecto las demas van en negro, solo es de modificarlo un poco...

Propiedad de dbgrid defaulfdrawing=false;

Caro
06-02-2009, 04:38:47
Hola kaelkas, paar pintar lo mas importante es la condición, recuperas el campo el cual vas a comparar con esa fecha y lo pintas, debes utilizar el evento OnDrawColumnCell.


procedure TForm1.DBGrid1DrawColumnCell(
Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Query.FieldByName('fecha').AsDateTime = Date then
begin
DBGrid1.Canvas.Brush.Color := clRed;
DBGrid1Canvas.Font.Color := clWhite;

DBGrid1.DefaultDrawColumnCell(rect,DataCol,Column,State);
end;
end;



Saluditos

kaeltas
06-02-2009, 16:24:49
muchisimas gracias a todos por su ayuda son los mejores, sigan asi siempre dando buenos consejos y ayudando a los menos expertos como yo.

De verdad muchas gracias y saludos!!!