Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   DbGrid en color (https://www.clubdelphi.com/foros/showthread.php?t=17525)

ramonibk 12-01-2005 12:46:38

DbGrid en color
 
Bueno os cuento.

Tengo una pequeña aplicación que tira de un motor Access, el programa lo que hace es controlar fechas y horas para dar avisos.

Tengo montado un sistema para cuando los avisos no han sido atendidos que me los pone en rojo dentro de un dbGrid.

Código:


begin

if DataCol=TStringGrid(Sender).LeftCol-0 then

        if (qryPendientesFechaActivacion.AsDateTime < =Date) And (qryPendientesHoraActivacion.AsString <= Hora)

          then UnColor:=clRed

          else UnColor:=clBlack;

  with (Sender As TDBGrid).Canvas do

  begin

        Font.Color:=UnColor;

        FillRect(Rect);

        TextOut(Rect.Left, Rect.Top, Column.Field.AsString);

end;

end;



El problema que me presenta este código es que solo me marca en rojo cuando coincida la fecha y la hora pero si la fecha es antigua y la hora no lo es no me lo marca.

Como podría hacer para que me lo marcase en todos los casos.

marcoszorrilla 12-01-2005 14:31:54

Código Delphi [-]
    begin
   if DataCol=TStringGrid(Sender).LeftCol-0 then
     if (qryPendientesFechaActivacion.AsDateTime < =Now)then
     UnColor:=clRed
     else
     UnColor:=clBlack;
 
     with (Sender As TDBGrid).Canvas do
     begin
     Font.Color:=UnColor;
     FillRect(Rect);
     TextOut(Rect.Left, Rect.Top, Column.Field.AsString);  end;
     end;
 end;
 
Código Delphi [-]

 

Un Saludo.



ramonibk 13-01-2005 11:59:33

Bueno he probado lo que me comentas

Código:

if
Código:

(qryPendientesFechaActivacion.AsDateTime < =Now)
Pero me sigue dando problemas
en este caso me marca en rojo las fechas del dia aunque la hora sea posterior a la actual.

ramonibk 13-01-2005 13:23:58

Bueno al final lo que he echo es intentar poner todas las posibilidades
y lo he montado de esta manera

Código:

begin
 if DataCol=TStringGrid(Sender).LeftCol-0 then
        if (qryPendientesFechaActivacion.AsDateTime < Date)
          then UnColor:=clRed
          else UnColor:=clBlack;
        if (qryPendientesFechaActivacion.AsDateTime = Date) And (qryPendientesHoraActivacion.AsString < Hora)
          then UnColor:=clRed
          else UnColor:=clBlack;
  with (Sender As TDBGrid).Canvas do
  begin
        Font.Color:=UnColor;
        FillRect(Rect);
        TextOut(Rect.Left, Rect.Top, Column.Field.AsString);
  end;
end;

Por cierto la variable Uncolor es una bariable global de tipo TColor


La franja horaria es GMT +2. Ahora son las 09:17:04.

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