if Column.Field.Dataset.FieldbyName ( 'COR' ).AsString = '1' then
DBG_GIN_SOC.canvas.brush.color := clVermelho1 ;
DBGrid1.DefaultDrawColumnCell ( rect, DataCol, Column, State ) ;
end;
No exemplo acima, tenho um campo COR no meu banco de dados, que me permite definir qual a cor de fundo que eu desejo.
Se estou utilizando Properties - Option - DgRowSelect = False, as cores funcionam corretamente, porém se o DgRowSelect for True, somente o primeiro campo do DBGrid obedece as cores do registro em destaque, e os outros campos não.
Como fazer para que toda a linha do DBGrid mostre a mesma cor do registro Selecionado ( ou seja clNavy = Letras brancas em fundo azul ) ?
Pergunta
Guest --Jose Luiz --
procedure TTESTE.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
const
clVerdeClaro = TColor ( $CCFFCC ) ;
begin
if ( gdFocused in State ) then
DBG_GIN_SOC.canvas.brush.color := clNavy
else
if Column.Field.Dataset.FieldbyName ( 'COR' ).AsString = '1' then
DBG_GIN_SOC.canvas.brush.color := clVermelho1 ;
DBGrid1.DefaultDrawColumnCell ( rect, DataCol, Column, State ) ;
end;
No exemplo acima, tenho um campo COR no meu banco de dados, que me permite definir qual a cor de fundo que eu desejo.
Se estou utilizando Properties - Option - DgRowSelect = False, as cores funcionam corretamente, porém se o DgRowSelect for True, somente o primeiro campo do DBGrid obedece as cores do registro em destaque, e os outros campos não.
Como fazer para que toda a linha do DBGrid mostre a mesma cor do registro Selecionado ( ou seja clNavy = Letras brancas em fundo azul ) ?
Obrigado.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.