AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[FM] sanftes Scrollen in Scrollbox

Ein Thema von quaero · begonnen am 2. Dez 2015 · letzter Beitrag vom 7. Dez 2015
Antwort Antwort
Seite 2 von 2     12   
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: [FM] sanftes Scrollen in Scrollbox

  Alt 4. Dez 2015, 10:39
Ich habe mit FireMonkey noch nicht viel gemacht, das mit dem Zoomen verstehe ich nicht. Liegt das Bild nicht an (0|0) sondern so in der Mitte dass es sich z.B. von (-100|-100) bis (100|100) erstreckt?

Wer übernimmt das Zoomen? Die Scrollbox, oder?
  Mit Zitat antworten Zitat
quaero

Registriert seit: 25. Apr 2013
38 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: [FM] sanftes Scrollen in Scrollbox

  Alt 4. Dez 2015, 11:22
Das Bild ist zentral ausgerichtet:Image.Align := Center Angenommen, die Scrollbox ist 400x600 Pixel groß. Wenn ich ein Bild anzeige, dass 200x200 Pixel hat, dann wird es an Position 100,200 angezeigt, also genau in der Mitte.
Das Bild passe ich aber so in die Scrollbox ein, dass mindestens eine Ausdehnung voll genutzt wird, also im Beispiel auf 400x400 vergrößert -> Position 0,100.
Um das Bild weiter zu vergrößern (oder auch wieder zu verkleinern), behandle ich die 2-Finger Zoomgeste und vergrößere das Bild ausgehend vom Gestenmittelpunkt um den "Gestenfaktor". Wenn ich also an Bildpunkt 300,200 das Bild um Faktor 2 vergrößere, dann bleibt dieser Bildpunkt genau da, wo er ist und alle anderen Bildpunkte entfernen sich um Faktor 2. Das Bild wird 800x800 groß und der Gestenpunkt für das Bild liegt dann bei 600x400. In der Scrollbox muss dieser Punkt weiter bei 300x200 angezeigt werden, so dass das Bild an Position -300,-100 liegt. In der Scrollbox entspricht dies dem Punkt 300,300 (x-Achse: -300(Position) + 600(Bildgestenpunkt) = 300; y-Achse: -100(Position) + 400(Bildgestenpunkt)).
Wenn sich der Viewport der Scrollbox an Position 0,0 befindet, dann ist der Mittelpunkt des Bildes genau in der Mitte der Scrollbox. Bei obiger Konstellation befindet sich der Bildmittelpunkt (400,400) aber 100 Pixel zu weit links (-300(Bildposition) + 400(Bildmittelpunkt) - 200(ScrollboxMitte) = -100), so dass die ViewportPosition := 100,0 ist.
Wenn ich mit der Zoomgeste genau den Mittelpunkt treffe, dann habe ich deine Werte, gewöhnlich werden sie aber davon abweichen.

Mein Problem besteht jetzt darin, dass der Viewport nur Positionen zwischen 0,0 (Ursprung) und 200,100 (rechte untere Ecke) annehmen kann. Die oberen 100 und die linken 200 Pixel des Bildes bekomme ich also nicht mehr zu sehen.
quaero
  Mit Zitat antworten Zitat
quaero

Registriert seit: 25. Apr 2013
38 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: [FM] sanftes Scrollen in Scrollbox

  Alt 7. Dez 2015, 14:45
Ich habe das Bild jetzt auf Image.Align := None gesetzt und positioniere es selber in der Mitte der PresentedScrollBox. Desweiteren habe ich alle Berechnungen zum Scrollen und Zoomen angepaßt. Jetzt funktioniert es so wie gewünscht. Vielen Dank für eure Hilfe.
quaero
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 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