procedure TForm1.DBGridDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if (gdSelected in State) then
  begin
    DBGrid1.Canvas.Brush.Color:=clYellow;
    DBGrid1.Canvas.Font.Color := ClBlack;
  end
  else
  begin
    if (DBGrid1.DataSource.DataSet.RecNo mod 2=1) then
      DBGrid1.Canvas.Brush.Color:= clGreen
    else
      DBGrid1.Canvas.Brush.Color:= clRed;
  end;
  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
不过要保证你的Query是ADO~否则如果是BDE的话不管用