Fórum DbGrig Alternar cor de determinados registros #130627
19/03/2010
0
Gostaria de saber como posso fazer para que na minha DBGrid a linha que contenha um determinado valor
receba uma cor diferente!
Exemplo tenho em minha tabela um campo C_DESATIVADO do tipo integer gostaria que quando algum registro
que no campo C_DESATIVADO retornasse 1 esta linha da minha DBGRig fosse de outra cor!
Alguém pode mim ajudar?
Thiago Santana
Curtir tópico
+ 0Posts
19/03/2010
Wilson Junior
begin
if DBGrid.DataSource.DataSet.FieldByName('C_DESATIVADO').AsInteger = 1 then
begin
DBGrid.Canvas.FillRect( Rect );
if gdSelected in State then
begin
DBGrid.Canvas.Font.Color := clWhite;
DBGrid.Canvas.Brush.Color := clNavy;
end
else
begin
DBGrid.Canvas.Font.Color := clBlack;
DBGrid.Canvas.Brush.Color := clBlue;
end
;
DBGrid.DefaultDrawColumnCell( Rect, DataCol, Column, State );
end
;
end;
Espero ter colaborado.
Gostei + 0
19/03/2010
Pjrm1470
No evento onDrawColumnCell do seu grid coloque o seguinte:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
If table1PRAZO.Value > DATE then // condição
Dbgrid1.Canvas.Font.Color:= clFuchsia; // coloque aqui a cor desejada
Dbgrid1.DefaultDrawDataCell(Rect, dbgrid1.columns[datacol].field, State);
end;
Fonte: DTDelphi 2.8
Espero que ajude, nem testei. rsrs. veja e me diga se funfa.
aguardo.
pjrm1470.
Gostei + 0
19/03/2010
Thiago Santana
Field: TField; AFont: TFont; var Background: TColor; Highlight: Boolean);
begin
if (Sender as TJvDBGrid ).DataSource.DataSet.FieldByName('C_Desativado').AsInteger = 1 then begin
AFont.Color := clRed;
Background := clWhite;
DBEdit5.Color := clbtnFace;
DBEdit1.Color := clbtnface;
Edit1.Color := clbtnFace;
end;
Com este código ficou do jeito que precisava!
Valeu pela ajuda!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)