Pintar linha inteira do DBGrid?

Delphi

18/04/2006

Pessoal!

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

Tomew

Curtidas 0

Respostas

Steve_narancic

Steve_narancic

18/04/2006

Também preciso implementar este recurso, alguém teria alguma idéia?


GOSTEI 0
Madxande

Madxande

18/04/2006

Eu fiz uma rotina que muda a cor do dbGrid conforme umas condições, vou colocar o código e explicar.

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
Bruno Belchior

Bruno Belchior

18/04/2006

Basta ativar o flag, [b:fa905ae2f3]dbRowSelect[/b:fa905ae2f3] da propriedade options do DBGrid e a linha inteira ficará em destaque...


GOSTEI 0
POSTAR