Einzelnen Beitrag anzeigen

MicMic

Registriert seit: 26. Mai 2018
296 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: ScrollBar nachbauen

  Alt 15. Jul 2018, 12:18
Es über einen Timer steuern eventuell?
Also Timer wird angeworfen wenn User Maus-Event fürs "hab-jetzt-Taste-gedrückt" wenn Timer fertig dann startet die eigentliche "ich-habe-noch-Taste-gedrückt-und-erwarte-bewegung" Ausführung.
Danke, hab da bissl rumgetestet. Danach mein Problem an ganz andere Stelle entdeckt.
Meine ScrollBar ändert für eine ListBox die TopIndex bzw. mit SendMessage und WM_HSCROLL/SB_PAGEDOWN wird der Inhalt gescrollt. Die ListBox selbst ist mit WS_EX_COMPOSITED gesetzt. Irgendwie bleibt der erste Scrollzustand mit einem Smooth Scrolling behaftet, der zwar nicht angezeigt wird (wegen WS_EX_COMPOSITED) aber diese Millisekunden werden dennoch verarbeitet, sprich die Reaktion auf "OnMouseDown" in meiner ScrollBar mit anschließenden SendMessage (damit die Listbox scrollt) reagiert versetzt. Dies aber nur beim ersten mal und deshalb kam ich da mit meiner While/End Schleife und Application.ProcessMessages nicht ganz weiter. Ich mach nun einfach "SPI_SETLISTBOXSMOOTHSCROLLING" rein, was leider aber Systemweit gesetzt wird. Nach Programmende schalte ich dann dieses Smooth wieder ein. So geht auch meine While/End Schleife für die ScrollBar und durch dieses SPI_SETLISTBOXSMOOTHSCROLLING sind auch andere Kinderkrankheiten weg, die mir gar nicht zuvor aufgefallen sind.

Alles bissl kompliziert zu beschreiben

Jetzt muss ich nur noch irgendwie SPI_SETLISTBOXSMOOTHSCROLLING abfragen, ob dieses überhaupt aktiviert ist, da ich es ja bei Programmende aktiviere. Soll ja nur aktiviert werden, wenn es vom System her auch vorher aktiv ist.

Dir trotzdem Danke für den Tipp mit dem Timer.

Michael
  Mit Zitat antworten Zitat