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!!
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;
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!!!
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.