Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 

Re: Im DBGrid Zeilen abwechselnd farbig hinterlegen

  Alt 10. Dez 2004, 08:36
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"
  Mit Zitat antworten Zitat