Das bringt dich vermutlich nicht weiter und geht jetzt auch nicht ins Details auf die
konkrete Problematik ein, aber von der Überlegung her muss es ja möglich sein
alle sichtbaren Einträge neu zu zeichnen, auch wenn nur die Selection von einem auf ein anderes
Item wechselt.
Einfachstes Beispiel wäre ein Multi-Select, welches 3 Markierungen durch einen Mausklick entfernt
und 1 neues hinzufügt.
Oder um ein Beispiel mal auf die Spitze zu treiben: Ich wähle ein Item aus, welches einer Gruppe
zugeordnet ist. 3 Autos, 3 LKW und 3 Züge. Wenn ein Auto markiert ist, sollen
1) das markierte Weiße Schrift auf blauem Grund,
2) alle (verbleibenden) Autos Gelbe Schrift auf blauem Grund,
3) alle verbleibenden Weiße Schrift auf Grauem Grund.
Gegen das Flackern hilft
vielleicht
Delphi-Quellcode:
SendMessage(compo.Handle, WM_SETREDRAW, 0, 0); // = Aus
SendMessage(compo.Handle, WM_SETREDRAW, 1, 0); // = An
aber da musst du probieren, an welcher Stelle du das verwenden musst,
da es ja nicht einen Teil der Neuzeichnung verhindert, sondern alles.
Ich hoffe das hilft beim Denken.
MfG Incocnito