Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   [FM] sanftes Scrollen in Scrollbox (https://www.delphipraxis.net/187479-%5Bfm%5D-sanftes-scrollen-scrollbox.html)

quaero 2. Dez 2015 14:06

[FM] sanftes Scrollen in Scrollbox
 
Hallo,

gibt es eine Möglichkeit, in einer Scrollbox den Viewport sanft zu ändern, so dass der Nutzer sieht wo es lang geht?
Ich kann über
Delphi-Quellcode:
ScrollBox1.ViewportPosition := TPointF(x, y);
ScrollBox1.ScrollTo(x, y);
ScrollBox1.ScrollBy(x, y);
die Scrollposition zwar ändern, aber der Nutzer ist sofort an der Position und hat u.U. keine Ahnung, wo er gerade ist oder woher er kommt.

Headbucket 3. Dez 2015 09:33

AW: [FM] sanftes Scrollen in Scrollbox
 
Hallo quaero,

wenn ich dich richtig verstanden habe, dann sollte die Eigenschaft Delphi-Referenz durchsuchenTControlScrollBar.Tracking genau das Richtige für dich sein.

Die Eigenschaft Delphi-Referenz durchsuchenTControlScrollBar.Smooth könntest du dir auch mal anschauen.

Grüße
Headbucket

Der schöne Günther 3. Dez 2015 10:17

AW: [FM] sanftes Scrollen in Scrollbox
 
Nein, er nicht den Benutzer an Scrollbalken ziehen lassen sondern programmgesteuert an eine bestimmte Stelle scrollen.

Ich hätte gedacht, man könnte einfach eine
Delphi-Quellcode:
TFloatAnimation
nehmen. Ich stehe dann aber direkt auf dem Schlauch, da ich nicht weiß, wie man
Delphi-Quellcode:
ViewportPosition.Y
animieren könnte. Denn
Delphi-Quellcode:
ViewPortPosition
ist ein Record und wenn er den abfragt, bekommt er nur eine Kopie des Originals. Die kann er munter verändern, da hat nur niemand etwas von. :|

Headbucket 3. Dez 2015 10:34

AW: [FM] sanftes Scrollen in Scrollbox
 
Edit: Ausversehen auf antworten geklickt. Wie kann man seine eigenen Beiträge löschen?

Damit der Post nicht total sinnlos ist eine Quick & Dirty Lösung: Die Zielposition über eine Schleife / einen Timer in kleinen Schritten ändern. "Sanft" und "schön" ist jedoch etwas anderes... .

Der schöne Günther 3. Dez 2015 10:38

AW: [FM] sanftes Scrollen in Scrollbox
 
Ja, und vor allem sollte das eigentlich etwas sein dass man im Jahr 2015 nicht mehr unbedingt selber machen will sondern eigentlich in seinem GUI-Framework erwartet. Die Animations-Komponenten in FireMonkey sind ja da, und ich finde die gar nicht übel. :thumb:

Aber wie man die hier zum Einsatz bringen kann ist mir schleierhaft. Die Embarcadero-Beispiele sind meist praxisferne rotierende Buttons, das hier ist eigentlich der Standardfall :oops:

quaero 3. Dez 2015 10:41

AW: [FM] sanftes Scrollen in Scrollbox
 
Ich werde mal schauen, ob ich mit FloatAnimation und ScrollTo etwas anfangen kann.

Der schöne Günther 3. Dez 2015 10:43

AW: [FM] sanftes Scrollen in Scrollbox
 
Es würde einem ja helfen wenn man bei der TFloatAnimation in ihrem Event abfragen könnte, um wie viel sie den Wert verändert hat. Gibt es da etwas?

Dann könnte man ja selber um eben diesen Wert scrollen...

Der schöne Günther 3. Dez 2015 12:35

AW: [FM] sanftes Scrollen in Scrollbox
 
Ich habe nochmal geschaut, seit 10 Seattle gibt es eine "TPresendetScrollBox".

Eine hier rein geschmissene TFloatAnimation "findet" dort drinnen viel mehr, unter anderen auch ein "VScrollBar.Value". Damit lässt sich mit drei Klicks doch ein schönes animiertes "Scroll to Top" basteln. :-)

quaero 3. Dez 2015 12:42

AW: [FM] sanftes Scrollen in Scrollbox
 
Ich hatte gerade mal versucht, über eine Zählschleife was zu basteln, was aber nicht wirklich schön anzusehen war.

Die PresentedScrollBox schau ich mir gleich mal an.

quaero 4. Dez 2015 07:35

AW: [FM] sanftes Scrollen in Scrollbox
 
Ich habe jetzt die PresentedScrollBox genutzt und das Scrollen funktioniert und ist schön sanft. Allerdings habe ich in der Scrollbox nur ein Bild, das gezoomt werden kann und zentral ausgerichtet ist. Wenn ich in das Bild reinzoome, dann komme ich weder an den oberen noch an den linken Teil ran, weil der Viewport in keiner Ausrichtung kleiner Null sein darf (weder per Code noch per Touch). :( Rechts unten komme ich genau bis zum Bildrand.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:56 Uhr.
Seite 1 von 2  1 2      

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