Fiz um sistema de telemarketing onde o usuário lançava o contato com o cliente, 
e a hora e data de retorno. Ao vencer a data e hora de retorno a linha do 
DBGrid mudava de cor, abaixo esta o codigo que fiz.



procedure TovF_PsqTelemark.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
  viLeft: integer;
  vsText: string;
begin
  with DBGrid1 do
    if ((DBGrid1.Focused) and not (gdSelected in State)) or (not 
DBGrid1.Focused) then
      if oCDS_Tele.FieldByName('Tele_DataRetorno').AsDateTime <> 0 then begin
        if oCDS_Tele.FieldByName('Tele_HoraRetorno').AsDateTime <> 0 then begin
          if (oCDS_Tele.FieldByName('Tele_DataRetorno').AsDateTime <= Date) and
             (oCDS_Tele.FieldByName('Tele_HoraRetorno').AsDateTime <= Time) 
then begin
            Canvas.Brush.Color := $00C4C4FF;
            Canvas.FillRect(Rect);
          end;
        end else
          if oCDS_Tele.FieldByName('Tele_DataRetorno').AsDateTime <= Date then 
begin
            Canvas.Brush.Color := $00E3E8EA; 
            Canvas.FillRect(Rect);
          end;

        if Assigned(Column.Field) then begin
          vsText := Column.Field.DisplayText;

          //** Alinhamento do texto do campo - calcula a posição ESQ
          if Column.Alignment = taLeftJustify then
            viLeft := Rect.Left + 2
          else
          if Column.Alignment = taRightJustify then
            viLeft := Rect.Right - Canvas.TextWidth(vsText) - 3
          else
            viLeft := Rect.Left + ((Rect.Right - Rect.Left) div 2) -
                 (Canvas.TextWidth(vsText)) div 2;

          //** Escreve o texto do campo dentro da célula
          Canvas.Font.Color := Column.Font.Color;
          Canvas.TextRect(Rect, viLeft, Rect.Top+2, vsText);
        end;
      end;
end;




Espero ter ajudado.

Thiago C. Santos
Desenvolvimento
Rhede Sistemas
(45) 3035-6606

[As partes desta mensagem que não continham texto foram removidas]





-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a