DbGrid c/linhas coloridas
Como se faz um dbgrid ficar com as linhas coloridas, estilo zebrado, ou seja, uma linha cinza, uma branca, depois cinza, branco e assim por diante...
Obrigado.
Obrigado.
Anonymous
Curtidas 0
Respostas
Carnette
15/02/2003
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
If odd(Table1.RecNo) then
begin
DBGrid1.Canvas.Font.Color:= clWhite;
DBGrid1.Canvas.Brush.Color:= clGreen;
end
else
begin
DBGrid1.Canvas.Font.Color:= clBlack;
DBGrid1.Canvas.Brush.Color:= clWhite;
end;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
end;
begin
If odd(Table1.RecNo) then
begin
DBGrid1.Canvas.Font.Color:= clWhite;
DBGrid1.Canvas.Brush.Color:= clGreen;
end
else
begin
DBGrid1.Canvas.Font.Color:= clBlack;
DBGrid1.Canvas.Brush.Color:= clWhite;
end;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
end;
GOSTEI 0
Anonymous
15/02/2003
Esta rotina é perfeita....mas tem um pequeno probleminha.
Se você estiver usando Interbase + BDE , o Recno sempre é igual a zero. Não testei com IBX ou dbExpress.
A solução é pegar um componente alternativo ou desenvolver. Tem um componente brazuca meio velhinho que quebra o galho : ZebraGrid.
Se você estiver usando Interbase + BDE , o Recno sempre é igual a zero. Não testei com IBX ou dbExpress.
A solução é pegar um componente alternativo ou desenvolver. Tem um componente brazuca meio velhinho que quebra o galho : ZebraGrid.
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
If odd(Table1.RecNo) then
begin
DBGrid1.Canvas.Font.Color:= clWhite;
DBGrid1.Canvas.Brush.Color:= clGreen;
end
else
begin
DBGrid1.Canvas.Font.Color:= clBlack;
DBGrid1.Canvas.Brush.Color:= clWhite;
end;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
end;
GOSTEI 0