WM_STYLECHANGED ist von Windows und hat nichts mit dem
VCL-Styling zu tun. Versuch es mal mit CM_STYLECHANGED.
Oups. Ja, vertippt. Aber gehen tut es trotzdem nicht.
Die ListView nimmt die Farbe beim ersten mal (wenn das Formular erzeugt wird) an, dann immer irgendwie einmal verzögert. Beim Umschalten auf den System Style (Windows) geht es immer. Beim Umschalten auf einen anderen Style bleibt die Farbe des vorhergehenden Styles erhalten (Windows -> Style A = Windows, Style A -> Style B = Style A usw.). Invalidates, Repaint, Updates... Hilft alles nichts. Weird,...
Beim setzen der Farbe (ListView.Color := ...) stimmt die Farbe von der ListView noch. Später steht da wieder die alte Farbe (des vorherigen Styles) drin.
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)