Fórum Pintar linha inteira do DBGrid? #319406
18/04/2006
0
Alguém sabe me dizer como faço para pintar a linha inteira de um campo selecionado no DBGrid?
Ao clicar em uma célula no DBGrid, preciso que toda a linha fique em outra cor...
Obrigado!
Tomew
Curtir tópico
+ 0Posts
06/08/2007
Steve_narancic
Gostei + 0
06/08/2007
Madxande
Rotina para mudar a cor do dbGrid em tempo de execução:
Nome do dbGrid: [b:a9965dec24]DBG_Dev[/b:a9965dec24]
[b:a9965dec24]//Primeiro, vc vai abrir o evento do dbGrid DrawColumnCell[/b:a9965dec24]
procedure TF_Devolucoes.DBG_DevDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if SDS_Dev.Active then
begin
if SDS_Dev.RecordCount > 0 then
begin
if (SDS_DevPAGO.AsString = ´S´) and (SDS_DevDT_ENTRADA.AsDateTime <= SDS_DevDT_RETORNO.AsDateTime) then
begin
[b:a9965dec24]// esse próximo if iestá verificando se a coluna do dbGrid está selecionada.[/b:a9965dec24]
if (gdSelected in State) then
begin
[b:a9965dec24]// Aqui eu defini a cor da coluna do dbGrid para Verde com a fonte branca.[/b:a9965dec24]
DBG_Dev.Canvas.Brush.Color := clGreen;
DBG_Dev.Canvas.Font.Color := clWhite;
end
else
begin
[b:a9965dec24]// Aqui eu defini a cor da coluna do dbGrid para Verde Claro com a fonte preta.[/b:a9965dec24]
DBG_Dev.Canvas.Brush.Color := clLime;
DBG_Dev.Canvas.Font.Color := clBlack;
end;
end;
end;
end;
[b:a9965dec24]Aqui estou aplicando as mudanças de cores definitivamente no dbGrid.[/b:a9965dec24]
DBG_Dev.DefaultDrawDataCell(Rect, DBG_Dev.columns[datacol].field, State);
end;
---
Espero ter ajudado.
Até mais.
Gostei + 0
06/08/2007
Bruno Belchior
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)