Ver Mensaje Individual
  #20  
Antiguo 29-11-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hay una forma de pintar alternadamente las filas sin depender del número de registro que consiste en calcular la fila a partir de la posición de la celda que se está dibujando (Rect.Top) y la altura de las filas.

No la he encontrado pero creo que es algo como esto:

Código Delphi [-]
type
  TExDBGrid = class(TDBGrid);

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if Odd(Rect.Top div (TExDBGrid(DBGrid1).DefaultRowHeight + Integer(dgRowLines in DBGrid1.Options))) then
    DBGrid1.Canvas.Brush.Color := clMoneyGreen;

  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

procedure TForm1.MyTable1AfterScroll(DataSet: TDataSet);
begin
  DBGrid1.Refresh;
end;

Creo recordar que era algo más sencillo pues aquí hay que manejar el evento AfterScroll del DataSet que se esté usando. Pero por ahí va la idea.

// Saludos
Responder Con Cita