Einzelnen Beitrag anzeigen

Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#1

TScrollBox - kein WM_VScroll bei bestimmten Scrollvorgehen

  Alt 9. Mär 2006, 12:35
Hi!

Ich habe eine TScrollBox-Komponente gebaut, die Elemente nur zeichnet wenn sich auch im Sichfeld sind.
Das ist aber nicht so wichtig. Bei Tracking = True für die Scrollleiste habe ich folgendes festgestellt:

1. Scrollleiste anfassen und gedrückt halten
2. entweder ganz schnell in einen anderen Bereich ODER bei gedrückter Maustaste raus aus der ScrollBox (weit genug)
und in einem anderen Bereich die Scrollbox wieder betreten
3. kein WM_VScroll wird ausgelöst, wenn die Scrollleiste beim Wiederbetreten der Scrollbox nach oben springt

(am besten reproduzierbar, wenn die Scrollleiste weniger als 20% der Range ausfüllt, dann nach 2. von ganz unten nach ganz oben - oder umgekehrt)

Da ich die bei jedem WM_VScroll überprüfe ob Elemente erstellt werden müssen oder nicht, habe ich den unschönen Effekt, dass man eine weiße Fläche sieht und erst bei Loslassen der Maus oder einer weiteren kleinern Scrollbewegung die Elemente erstellt werden. (Da erst dann der WM_VScroll kommt)

Kennt jemand das Problem und hat eine Idee?

Grüße und Dank

Sebastian

EDIT:

Ich habe nun TControl.ConstrainedResize überschrieben. Das Problem des Nicht-Zeichnens ist gelöst, aber mit dieser Lösung schieße ich mit Kanonen auf Spatzen. (Zu viele Kontrollen)
Sebastian
  Mit Zitat antworten Zitat