Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.585 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Stringgrid zeilen färben

  Alt 6. Jul 2024, 12:33
... ok, Danke euch beiden. Da ich bereits ein StringGrid habe und nutze, mein Gedanke sich aber wohl nicht "einfach" umsetzen lässt, wurde der Gedanke an "bunte Zeilen" verworfen.
Das ist sogar sehr einfach. Du musst es nur halt machen wie beschrieben...

Du musst darauf reagieren, dass der Inhalt neu gezeichnet werden muss. Deshalb bringt es nichts, wenn du es nur einmalig per Buttonklick zeichnest. Stell DefaultDrawing auf False, dann kannst du im OnDrawCell z.B. das machen:
Delphi-Quellcode:
procedure TForm.StringGridDrawCell(Sender: TObject; ACol, ARow: LongInt; Rect: TRect; State: TGridDrawState);
var
  Grid: TStringGrid;
begin
  Grid := Sender as TStringGrid;
  if gdFixed in State then
  begin
    Grid.Canvas.Brush.Color := clInactiveCaption;
    Grid.Canvas.Font.Color := clBlack;
  end
  else
  if gdSelected in State then
  begin
    Grid.Canvas.Brush.Color := clHighlight;
    Grid.Canvas.Font.Color := clHighlightText;
  end
  else
  begin
    if Grid.Cells[ACol, ARow] = 'xthen
      Grid.Canvas.Brush.Color := clRed
    else
      Grid.Canvas.Brush.Color := clWindow;
    Grid.Canvas.Font.Color := clWindowText;
  end;
  Grid.Canvas.FillRect(Rect);
  Grid.Canvas.TextOut(Rect.Left + 3, Rect.Top + 3, Grid.Cells[ACol, ARow]);
end;
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat