Array
(
)

Melhoria no código p/ mudar linha no DbGrid

Rafaelunp
   - 31 ago 2004

Pessoal,

estou usando o codigo abaixo para mudar a cor da linha do dbgrid. Funciona perfeitamente, mas os campos ficam todos alinhados à esquerda quando a linha está selecionada...
Quero que fique com o alinhamento padrao de cada campo...
Alguem sabe como fazer isso??

#Código

If gdSelected In State Then 
With TDBGrid(Sender).Canvas Do
Begin
Brush.Color := $00A07020; // altere para a cor desejada
FillRect(Rect);
TextOut(Rect.Left+2, Rect.Top+2, Column.Field.AsString);
End;



Rsballoussier
   - 01 set 2004

Costumo usar para deixar as linhas zebradas de TDBGrid.
O código é assim:
...
if not Odd(TDBGrid(Sender).DataSource.DataSet.RecNo) then
if not (gdSelected in State) then
begin
TDBGrid(Sender).Canvas.Brush.Color := clSilver; // ou outra cor
TDBGrid(Sender).Canvas.FillRect(Rect);
TDBGrid(Sender).DefaultDrawDataCell(Rect, Column.Field, State);
end;
...

Até mais.
Favor reportar se a resposta acata.


Rafaelunp
   - 01 set 2004


Citação:
Costumo usar para deixar as linhas zebradas de TDBGrid.
O código é assim:
...
if not Odd(TDBGrid(Sender).DataSource.DataSet.RecNo) then
if not (gdSelected in State) then
begin
TDBGrid(Sender).Canvas.Brush.Color := clSilver; // ou outra cor
TDBGrid(Sender).Canvas.FillRect(Rect);
TDBGrid(Sender).DefaultDrawDataCell(Rect, Column.Field, State);
end;
...

Até mais.
Favor reportar se a resposta acata.


Pois é cara, o código acima funciona, mas o pro é q a linha q está zebrada fica desconfigurada... fica alinhada a direita (numeros) e a esquerda (texto)... quero q continue com a formatação que eu defini anteriormente...
Valeu...


Rafaelunp
   - 01 set 2004

sobe