Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Coloreando un dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=63252)

kaeltas 05-02-2009 18:38:31

Coloreando un dbgrid
 
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 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

Cita:

Empezado por kaeltas (Mensaje 337207)
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



Código Delphi [-]
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.

Código Delphi [-]
 
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!!!


La franja horaria es GMT +2. Ahora son las 00:01:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi