Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal,
preciso de uma mãozinha aqui ...
Eu to precisando pintar uma célula do DBGrid de acordo com o valor da mesma. Eu to usando esse código no onDrawColumnCell, mas ele está pintando a linha inteira, só que na verdade eu quero que pinte somente uma célula:
If DM.queVisualizaTarefa.FieldByName('data_limite').Text = 'N' then
DBGrid1.Canvas.Brush.Color:= clRed
else
DBGrid1.Canvas.Brush.Color:= clGreen;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
Pode ser até pintar somente a linha da célula, mas gostaria que fosse só uma célula. Alguém pode me ajudar?
>
Olá
Fiz um exmeplo simples no qual eu pinto toda célula que tiver uma palavra com a letra "a".
Para isso, usei o evento DrawColumnCell do DBGrid veja só:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if AnsiContainsText(DataSource1.DataSet.FieldByName(Column.FieldName).AsString, 'a') then
DBGrid1.Canvas.Brush.Color := clRed
else
DBGrid1.Canvas.Brush.Color := clWhite;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,state);
end;
Abcs,
eae Felipe, vlw pela ajuda ... mas não deu. Ele coloriu a linha toda e não só uma célula.
Alguém? O q estou fazendo de errado?
Olá
Fiz um exmeplo simples no qual eu pinto toda célula que tiver uma palavra com a letra "a".
Para isso, usei o evento DrawColumnCell do DBGrid veja só:
begin if AnsiContainsText(DataSource1.DataSet.FieldByName(Column.FieldName).AsString, 'a') then DBGrid1.Canvas.Brush.Color := clRed elseAbcs,