Κυριακή 4 Μαρτίου 2012

Alternate DBGrid Row Color

You've seen this surely on web pages. Alternating table row colors means displaying the first record in one color and the second record in another color and continue to alternate the color of each row displayed.
When working with datasets with many rows, alternating the background color of each row can increase readability.

Here's the OnDrawColumnCell event handler for a DBGrid control to color every second row in a different color. 

 procedure TGridForm.DBGridDrawColumnCell(
   Sender: TObject;
   const Rect: TRect;
   DataCol: Integer;
   Column: TColumn;
   State: TGridDrawState) ;
 var
   grid : TDBGrid;
   row : integer;
 begin
   grid := sender as TDBGrid;
 
   row := grid.DataSource.DataSet.RecNo;
 
   if Odd(row) then
     grid.Canvas.Brush.Color := clSilver
   else
     grid.Canvas.Brush.Color := clDkGray;
 
   grid.DefaultDrawColumnCell(Rect, DataCol, Column, State) ;
 
 end; (* DBGrid OnDrawColumnCell *)
 
Note that the row color eliminates the need of table borders and make it easy for the eye to read a row. In a vertical sense, the colors make it easier to 'catch' an item because it is on either one of the colors.

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου