Einzelnen Beitrag anzeigen

BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
495 Beiträge
 
Delphi 12 Athens
 
#1

TListView.Color Bug?

  Alt 19. Aug 2022, 09:54
Hallo zusammen,

ich habe ein TListView in einer Applikation welche zu Laufzeit den Skin ändern kann. Damit das Teil nicht flackert habe ich StyleElements.seClient deaktiviert und setze den Hintergund mit "ListView.Color := StyleServices.GetSystemColor(clWindow);" manuell. Funktioniert beim Öffnen des Formulars hervorragend.

Nun versuche ich auf den Wechsel des Skins zu reagieren:
Delphi-Quellcode:
procedure TscrDiagnostic.WMStyleChanged(var Msg: TMessage);
begin
  inherited;
  lvJobs.Color := StyleServices.GetSystemColor(clWindow);
end;
Leider hat das keinen Effekt. In der VCL habe ich folgendes gefunden:
Delphi-Quellcode:
procedure TCustomListView.SetTextBkColor(Value: TColor);
begin
  ListView_SetTextBkColor(Handle, ColorToRGB(Color));
  ListView_SetBkColor(Handle, ColorToRGB(Color));
end;
Sollte da nicht "Value" zugewiesen werden? Ist das ein Bug?

Oder warum interessiert es das TListView nicht wenn ich die Farbe neu zuweise?

Any idea?

Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat