DBGrid - pintando dentro

Top  Previous  Next

Como colorir uma unica celula de uma DBGrid, mas acabei descobrindo um modo. A quem interessar, basta colocar o seguinte codigo, no evento DrawColumnCell, da DBGrid:

 

procedure TFormCadColetas.DBGrid1DrawColumnCell

begin

   if (Column.Field.FieldName = 'VALUNIT') then  // Coloque aqui a sua condicao 

   begin

      if QueryColetaVALUNIT.Value = FMenorPreco then

      begin

         DBGrid1.Canvas.Brush.Color := clAqua;

         DBGrid1.Canvas.Font.Color := clWindowText;

         DBGrid1.Canvas.FillRect(Rect);

         DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column,State);

      end;

   end;

end;

 

No meu caso, eu estava querendo destacar qual o menor preco, em uma coleta

de precos. A variavel FMenorPreco contem o menor dos precos, que ja' calculei em uma outra rotina. Se alguem quiser pintar toda a linha, basta tirar o "if (Column.Field.FieldName = 'VALUNIT')".