Listview einzelne Zellen färben

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

Listview einzelne Zellen färben

Beitragvon Aphadias » 31. Aug 2017, 12:19 Listview einzelne Zellen färben

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?
Aphadias
 
Beiträge: 90
Registriert: 28. Okt 2015, 18:28

Beitragvon theo » 1. Sep 2017, 09:39 Re: Listview einzelne Zellen färben

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
theo
 
Beiträge: 7885
Registriert: 11. Sep 2006, 18:01

Beitragvon Aphadias » 5. Sep 2017, 14:32 Re: Listview einzelne Zellen färben

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:
Aphadias
 
Beiträge: 90
Registriert: 28. Okt 2015, 18:28

Beitragvon theo » 5. Sep 2017, 22:13 Re: Listview einzelne Zellen färben

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

http://lazarus-ccr.sourceforge.net/docs ... state.html
theo
 
Beiträge: 7885
Registriert: 11. Sep 2006, 18:01

• Themenende •

Zurück zu Freepascal



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste

porpoises-institution
accuracy-worried