News Ticker

get different background color of DBGrid for odd and even rows

{
Um in einem DBGrid die Übersicht zu behalten, ist es sehr angenehm,
die Zeile abwechselnd einzufärben.
Folgender Code soll Euch die näher bringen.
Viel Erfolg beim Programmieren!
Malte
}

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
test1: Real;
RowNo: Integer;
begin
with 
(Sender as TDBGrid) do
begin
if 
(gdSelected in State) then
begin
// Farbe für die Zelle mit dem Focus
// color of the focused row
Canvas.Brush.Color := clblue;
end
else
begin
// Zeile erfahren
// get the actual row number
rowno := Query1.RecNo;
// gerade und ungerade Zeilen ermitteln
// odd or even ?
test1 := (RowNo / 2) – trunc(RowNo / 2);
// Zeile gerade…
// If it’s an even one…
if test1 = 0 then
begin
farbe := clWhite
end
// …Zeile ungerade
// …else it’s an odd one
else
begin
farbe := clYellow;
end;
Canvas.Brush.Color := farbe;
// Font-Farbe immer schwarz
// font color always black
Canvas.Font.Color := clBlack;
end;
Canvas.FillRect(Rect);
// Denn Text in der Zelle ausgeben
// manualy output the text
Canvas.TextOut(Rect.Left + 2, Rect.Top + 1, Column.Field.AsString);
end
end
;