Melhoria no código p/ mudar linha no DbGrid

31/08/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??

     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;



Rafaelunp

Respostas

01/09/2004

Rsballoussier

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.


Responder Citar

01/09/2004

Rafaelunp

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...


Responder Citar

01/09/2004

Rafaelunp

sobe


Responder Citar