Einzelnen Beitrag anzeigen

e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
156 Beiträge
 
Delphi 6 Enterprise
 
#1

ListView - Problem beim Spaltenfärben

  Alt 27. Jul 2017, 08:47
Hallo!

Gerade bin ich auf ein mir unerklärliches Phänomen beim Färben einer Spalte eines ListViews gestoßen. Kann es sein, dass die Systemvariable clWindows während eines CustomDraws den Inhalt ändert?

Folgender Code soll die angeklickte Spalte (ListView1SortCol) mit einem hellen Gelb markieren:
Delphi-Quellcode:
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if ListView1SortCol=0 then ListView1.Canvas.Brush.Color:= $E4FFFF
  else ListView1.Canvas.Brush.Color:= clWindow;
end;

procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
  if ListView1SortCol=SubItem then ListView1.Canvas.Brush.Color:= $E4FFFF
  else ListView1.Canvas.Brush.Color:= clWindow;
end;
Die Spalten vor ListView1SortCol werden mit korrektem Hintergrund angezeigt, während die Spalten danach mit der gleichen Farbe wie die markierte Spalte gefärbt werden. Erstetze ich jedoch clWindow durch clWhite, funktioniert alles.

Aber clWindow sollte sich doch nicht ändern, oder?

Gruß
e-gon
  Mit Zitat antworten Zitat