dbgrid - registros com cores diferentes

12/03/2006

pessoal tô usando um dbgrid e preciso deixar uma linha vermelha quando o cliente estiver com sua situação cancelada e linhas azuis quando a situação for normal...


como faço para colorir as linhas do dbgrid?


Rafael Santana

Respostas

12/03/2006

Adriano Santos

[quote:9e9def3ccf=´rafael miguel santana´]pessoal tô usando um dbgrid e preciso deixar uma linha vermelha quando o cliente estiver com sua situação cancelada e linhas azuis quando a situação for normal...


como faço para colorir as linhas do dbgrid?[/quote:9e9def3ccf]


procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if Table1.FieldByName(´CONTINENT´).AsString = ´South America´ then
  begin
    DbGrid1.Canvas.Brush.Color := clBlue;
    DbGrid1.Canvas.Font.Color := clWhite;
  end
  else if Table1.FieldByName(´CONTINENT´).AsString = ´North America´ then
  begin
    DbGrid1.Canvas.Brush.Color := clRed;
    DbGrid1.Canvas.Font.Color := clWhite;
  end;
  DbGrid1.Canvas.FillRect(Rect);
  DbGrid1.DefaultDrawDataCell(rect,Column.Field,State);
end;



Responder Citar

12/03/2006

Aroldo Zanela

Colega,

A forma de menor esforço que conheço, é utilizando a RxLib ou Jedi VCL, que possuem um componente com manipulador de evento específico para isso.


Responder Citar