Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Scrollbox mit Handsymbol wie Acrobat Reader (https://www.delphipraxis.net/108364-scrollbox-mit-handsymbol-wie-acrobat-reader.html)

v2afrank 12. Feb 2008 12:19


Scrollbox mit Handsymbol wie Acrobat Reader
 
Hallo,
ich habe hier eine Scrollbox in der der Benutzer über einen ziemlich großen Bereich scrollen kann.
Um es bequemer zu machen würde ich gerne eine Funktion einbauen wie es der Acrobat Reader oder der Internet Explorer bietet. Diese ermögliche es bei gedrücktem Mausrad durch das Dokument zu scrollen, in dem einfach die Maus in die gewünschte Richtung gezogen wird.
Hat jemand eine Idee, wie ich so was realisieren könnte

Xong 12. Feb 2008 12:52

Re: Scrollbox mit Handsymbol wie Acrobat Reader
 
Zitat:

Zitat von v2afrank
Hat jemand eine Idee, wie ich so was realisieren könnte

Einfach in den OnMouseDown-Event der Scrollbox eine Abfrage nach der mittleren Maustaste einbauen und das Scrollen ein- bzw. ausschalten. (Am besten legst du dir gleich eine Klasse an, in der Mauspostion, Scrollstatus, Distanz, Richtung und ggf. weitere Werte gespeichert werden.)

Im OnMouseMove wird abgefragt, ob Scolling = true. Wenn true, dann speicherst du die neue Mausposition und die Distanz und Richtung zur Mittlere-Maus-Taste-gedrückt-und-Scolling=True-Mausposition.

Jetzt musst du nur noch via Timer abfragen, ob sich die Maus auf dem Element/der Scrollbox befindet und Scrolling true ist. (Den Timer brauchst du ja nur aktivieren, wenn gescrollt werden soll.)
Ist das der Fall kannst du aus der Richtung die Scrollrichtung herauslesen und aus der Distanz die Scrollgeschwindigkeit.

Alles klar? 8)

EDIT: Nur der Vollständigkeit halber: Den Cursor dabei noch zu verändern dürfte nicht weiter schwer sein.

v2afrank 12. Feb 2008 13:22

Re: Scrollbox mit Handsymbol wie Acrobat Reader
 
Ist zumindest mal ein Ansatz.
Ich werde es versuchen. Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz