Eu utilizo o código abaixo, que encontrei na net, e não tenho problema algum. 
Se vc observar é idêntico ao seu.

procedure TFormPadrao.DBGridPadraoDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  // Se a linha for ímpar
  if not odd((Sender as TDBGrid).DataSource.DataSet.RecNo) then
    // se a célula não está selecionada
    if not (gdSelected in State) then
    begin
      // Seta a cor de fundo da célula
      (Sender as TDBGrid).Canvas.Brush.Color := $00FFEFDF;
      // Pinta a célula
      (Sender as TDBGrid).Canvas.FillRect(Rect);
      // Pinta o texto padrão
      (Sender as TDBGrid).DefaultDrawDataCell(rect, Column.Field, State);
    end;
end;
 
Luis Alberto
Belo Horizonte - MG


----- Mensagem original ----
De: Jeanne <[EMAIL PROTECTED]>
Para: delphi-br@yahoogrupos.com.br
Enviadas: Segunda-feira, 6 de Novembro de 2006 14:21:52
Assunto: [delphi-br] Grid Zebrado nao funciona

oi pessoal, estou tentando deixar um grid Zebrado. O banco que estou utilizando 
eh o Firebird e to utilizando um TQuery como dataset. 

A função que estou utilizando eh a seguinte:

   if not odd(TDBGrid(Sender).DataSource.DataSet.RecNo) then
      if not (gdSelected in State) then
      begin
           with TDbGrid(Sender) do
           begin
                Canvas.Brush.Color := $00FFEFDF;
                Canvas.FillRect(Rect);
                DefaultDrawDataCell(rect,Column.Field,State);
           end;

      end;

O problema é que o valor desse TDBGrid(Sender).DataSource.DataSet.RecNo é 
sempre -1. Alguem sabe porque acontece isso?

[As partes desta mensagem que não continham texto foram removidas]



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

Links do Yahoo! Grupos

 








                
_______________________________________________________ 
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. 
Registre seu aparelho agora! 
http://br.mobile.yahoo.com/mailalertas/ 
 


[As partes desta mensagem que não continham texto foram removidas]



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