Die Randbedingungen:
Ich habe mir eine eigene Klasse für meine Scrollbars gebaut, die einen Owner haben muss, bei dem dann die Scrollbars eingebaut werden. Meine Scrollbar-Klasse hat also kein eigenes Windows-Handle und bekommt somit die LM_HSCROLL und LM_VSCROLL messages nicht, sondern nur die eigene LM_UPDATESCROLLBAR. LM_HSCROLL und LM_VSCROLL müssen in der Owner-Klasse abgefangen werden. Momentan habe ich nur eine vertikale Scrollbar, der Owner erhält also auch nur die LM_VSCROLL. Ich habe meine Klassen also folgendermaßen angepasst:
-In der Scrollbar-Klasse soll nur noch auf LM_UPDATESCROLLBAR reagiert werden (1x message)
-In der Owner-Klasse gibt es eine Message-Prozedur, die nun auf LM_HSCROLL und LM_VSCROLL reagiert und intern Update aus der Scrollbarklasse aufruft.
Symptome:
Folgende Methode wird bei LM_VSCROLL ausgeführt:
Code: Alles auswählen
procedure UpdateScrollBars(var Msg); message LM_HSCROLL; message LM_VSCROLL;
Folgende Methode wird bei LM_VSCROLL
nicht ausgeführt (LM_VSCROLL; message LM_HSCROLL vertauscht):
Code: Alles auswählen
procedure UpdateScrollBars(var Msg); message LM_VSCROLL; message LM_HSCROLL;
Ich schließe daraus, dass nur das letzte message aktiv ist.
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!