Fórum Grid Zebrado... #320589

04/05/2006

0

Após executar este código, o indicador de posição do grid aquele caqracter ´>´ nunca fica no primeiro registro, ele sempre fica no registro q foi pintado, quando se clica no último registro, depois volto ao primeiro, aí este defeito é corrigido, como posso fazer para sempre depois q pintar o grid, eu posicionar o registro no 1º item ?

procedure TForm3.RxDBGrid1DrawColumnCell(Sender: TObject;const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
Var
A:Talignment; //Guarda a Formatação da Coluna
begin
a:=rxdbGrid1.columns[DataCOL].Alignment; //Pegando a formatação da Coluna
if not odd(ADOQuery1.RecNo) then //Testando se é par
begin
RXDBGrid1.Canvas.Brush.Color:= clMoneyGreen; //Atribui cor
RXDBGrid1.Fields[datacol].Alignment:=a; //Atribui formatação
RXDBGrid1.Canvas.FillRect(Rect);
RXDBGrid1.DefaultDrawDataCell(Rect, Column.Field, State); //Pinta a Célula
if gdFocused in State then //testa se está selecionado
begin
RXDBGrid1.Canvas.Brush.Color:= clBlack;
RXDBGrid1.Canvas.FillRect(Rect);
RXDBGrid1.DefaultDrawDataCell(Rect, Column.Field, State);
end;
end;
end;


Cabal

Cabal

Responder

Posts

04/05/2006

Ricardo_ascii

Olá amigo,


Eu faço dessa forma e vai normal. Dê uma olhada e vê se ajuda.



Coloca no evento do DrawColumnCell do dbgrid.


if not odd(tabela.RecNo) then
begin
if not (gdSelected in state) then
begin
dbGrid1.Canvas.Brush.Color := $00FFF8F0;
dbGrid1.Canvas.FillRect(Rect);
dbGrid1.DefaultDrawDataCell(rect,column.field,state);
end;
end;


espero ter ajudado


Responder

Gostei + 0

04/05/2006

Cabal

Grande amigo, veleu pela força, fiqcou ótimo, só q eu tenho o seguinte problema, eu tenho Colunas com a formatação taCenter e Outras com taLeftJustifi no grid. Como eu poderia antes de escrever a celula guardar a formatação, pois toda vez q ele executa a pintura ele escreve com a formatação alinhada a esquerda. Valeu amigo Abraços...


Responder

Gostei + 0

04/05/2006

Ricardo_ascii

Ola,


Vc. tem que ir la no componente table e colocar ´tacenter´ no campo correspondente.


Abraço, Ricardo


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar