Listview einzelne Zellen färben

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Aphadias
Beiträge: 124
Registriert: Mi 28. Okt 2015, 18:28

Listview einzelne Zellen färben

Beitrag von Aphadias »

moin...

Code: Alles auswählen

if Item.subitems[subitem-1]='BDV A' then
    Sender.Canvas.Brush.Color := $002424FF
    else
      Sender.Canvas.Brush.Color := farbe;


ich wollte die Zellen färben die ein bestimmtes Wort beinhalten und habe aber leider nicht um die Ecke gedacht... bis jetzt war es ja immer nur in einer Spalte vorhanden... habe jetzt aber auch eine zweite und dort soll es sich nicht färben. Hatte nicht dran gedacht das er ja über die ganze Tabelle fliegt :roll: Kann man das irgend wie auf zb Spalte 3 begrenzen? Also das er nur in der Spalte 3 die Zellen färbt?

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Listview einzelne Zellen färben

Beitrag von theo »

So irgendwie:

Code: Alles auswählen

procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: integer; State: TCustomDrawState; var DefaultDraw: boolean);
var
  R: TRect;
begin
  R := Item.DisplayRectSubItem(SubItem, drBounds);
  if State = [] then
  begin
    if SubItem = 2 then
      Sender.Canvas.Brush.Color := clred
    else
      Sender.Canvas.Brush.Color := clwhite;
    Sender.Canvas.Rectangle(R);
  end;
end

Aphadias
Beiträge: 124
Registriert: Mi 28. Okt 2015, 18:28

Re: Listview einzelne Zellen färben

Beitrag von Aphadias »

danke schön Theo...

ich habe aber mal das TRect rausgenommen weil ich keine Rechtecke haben möchte wenn ich mit der Maus drüber fahre.... Dazu verstehe ich auch nicht so ganz was das IF State = [] aussagt???? Also zumindestens macht es wenn ich eine Zeile anklicke die Zeile weiß bis ich eine andere anklicke... aber was ist State für eine Schlüsselposition? Sonst habe ich das auch rausgenommen und es funktioniert so wie ich es brauche. Hätte nicht gedacht das es so einfach geht. Immerhin war ich der Lösung auch schon mal Nahe :lol:

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Listview einzelne Zellen färben

Beitrag von theo »

In der Hilfe nachschauen. Das sind die versch. Zeichenzustände:

http://lazarus-ccr.sourceforge.net/docs ... state.html

Antworten