Mega Code Archive

 
Categories / Delphi / Graphic
 

Get different background color of DBGrid for odd and even rows (1)

Title: get different background color of DBGrid for odd and even rows (1)? { 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;