Fórum Problema ao alterar a cor das linhas no DbGrid #553102
03/05/2016
0
Olá, estou usando o código abaixo para mudar a cor da linha do Grid para verde, porém, quando seleciono um campo no grid do qual esta com a cor alterada (verde), a informação que esta no campo do grid aparece no fundo em branco, fazendo com que apareça a informação repetida na cor branca, isso ocorre apenas nas linhas que devem ficar em verde, nas outras linhas, quando seleciono o campo, a informação fica em branco e o campo selecionado na cor azul, padrão.
Não consegui anexar os prints, então fiz upload no send space das imagens: https://www.sendspace.com/file/sbkb4a
Não consegui anexar os prints, então fiz upload no send space das imagens: https://www.sendspace.com/file/sbkb4a
procedure Tform1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if ClientDataSet_venda_nfeSTATUS.AsString = 'Autorizado o uso da NF-e' then
begin
DBGrid1.Canvas.Font.Color := clGreen;
DBGrid1.Canvas.Font.Style := [fsBold];
DBGrid1.DefaultDrawDataCell(Rect, DBGrid1.columns[DataCol].field, State);
end;
end;
Jhon
Curtir tópico
+ 0
Responder
Post mais votado
04/05/2016
Coloque uma condição no seu código para efetuar a alteração da linha apenas se ela não estiver selecionada.
Teste assim:
Teste assim:
procedure Tform1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if not(gdSelected in State) then // Se a linha não estiver selecionada efetua a alteração
if ClientDataSet_venda_nfeSTATUS.AsString = 'Autorizado o uso da NF-e' then
begin
DBGrid1.Canvas.Font.Color := clGreen;
DBGrid1.Canvas.Font.Style := [fsBold];
DBGrid1.DefaultDrawDataCell(Rect, DBGrid1.columns[DataCol].field, State);
end;
end;Natanael Ferreira
Responder
Gostei + 1
Mais Posts
04/05/2016
Jhon
Perfeito, Tão simples. Muito Obrigado Natanael
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)