Zitat von
VizeTE:
.. beide kennen aber keinen Parameter wie "Row". Aus diesem Grund kenne ich nicht die aktuelle Zeile in der gerade gezeichnet wird....
Hai VizeTE,
das kannst Du über die Eigenschart
.RecNo des TDataSets machen.
z.B.:
Delphi-Quellcode:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
with (Sender as TDBGrid) do
begin
if ((DataSource.DataSet.RecNo mod 2) = 0) then //jede zweite Zeile berücksichtigen
begin
if (not (gdSelected in State)) then
begin
Canvas.Brush.Color := clGreen; //Farbe die jede zweite Zeile bekommen soll.
Canvas.FillRect(Rect);
end;
end;
if ((not (dgRowSelect in Options)) and (gdFocused in State)) then //Wenn RowSelect = False die aktive Zelle blau färben
begin
Canvas.Brush.Color := clBlue; //Farbe der selektierten Zelle wenn RowSelect = False;
Canvas.FillRect(Rect);
end;
Canvas.TextOut(Rect.Left + 2, Rect.Top + 1, Field.AsString); //Denn Text in der Zelle ausgeben
end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"