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)