Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

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

Zeilen eines StringGrids färben. Aktive Zelle färben

  Alt 27. Feb 2003, 12:46
Folgender Code färbt jede zweite Zeile eines StringGrids ein.
Wenn RowSelect = False ist wird die Zelle die den Fokus besitzt in Blau dargestelle.

Das sollte dan eigentlich an alle anderen Grids angepasst werden können.


Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);

begin
  if (ACol > 0) and (ARow > 0) then
  begin
    with (Sender as TStringGrid) do
    begin
      if ((ARow 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 (goRowSelect 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, StringGrid1.Cells[ACol, ARow]); //Denn Text in der Zelle ausgeben
    end;
  end;
end;
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat