Acredito que faltou o alinhamento: segue abaixo uma rotina que 
funciona.

Procedure DBGridZebrado(Grid: TDbGrid; State: TGridDrawState; Rect: 
TRect; Column: TColumn);
begin

  Column.Alignment := Column.Field.Alignment;

  if (state = [gdselected]) or (state = [gdselected,gdFocused]) then
  begin
     (Grid as TDBGrid).Canvas.Brush.Color := clYellow;
     (Grid as TDBGrid).Canvas.Font.Color  := clNavy;
  end
  else
  begin
     If odd((Grid as TDBGrid).DataSource.DataSet.RecNo) then
     begin
       (Grid as TDBGrid).Canvas.Font.Color:= clBlack;
       (Grid as TDBGrid).Canvas.Brush.Color:= clSkyBlue;
     end
     else
     begin
       (Grid as TDBGrid).Canvas.Font.Color:= clBlack;
       (Grid as TDBGrid).Canvas.Brush.Color:= clInfoBk;
     end;
  end;

  (Grid as TDBGrid).DefaultDrawDataCell(rect,column.Field,state);

end;



--- Em delphi-br@yahoogrupos.com.br, "Leandro Carbonera" 
<[EMAIL PROTECTED]> escreveu
>
> 
> Salve lista.......
> 
> Como passaram o carnaval, muita festa....????
> 
> Na edição 44 da revista clubedelphi saiu uma materia sobre 
diversos macetes
> do DBGrid e uma delas era de como pintar uma linha, criando um 
DBGrid
> zebrado. Minha duvida é a seguinte. Porque que, quando eu pinto 
uma linha
> ele desalinha o texto contido na celula.....
> 
> Abaixo segue o codigo que estou utilizando para fazer isso....
> 
> No Evento OnDrawColumnCell
> 
> if not odd(ClientDataSet.RecNo) then
>   if not(gdSelected in State) then
>   begin
>     DBGrid.Canvas.Brush.Color := $00FFEFDF;
>     DBGrid.Canvas.FillRect(Rect);
>     DBGrid.DefaultDrawDataCell(Rect,Column.Field,State);
>   end;
> 
> 
> 
> Att.
> 
> Leandro Carbonera
> Suporte Técnico - RBR Informática
> 
> Fone: 54 343 1788
> [EMAIL PROTECTED]
> www.rbrinformatica.com.br
> 
> 
>               
> _______________________________________________________
> Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o 
discador agora!
> http://br.acesso.yahoo.com
>






-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a