Scrollbox "positionieren"

Rund um die LCL und andere Komponenten
Antworten
am2
Lazarusforum e. V.
Beiträge: 116
Registriert: Di 21. Dez 2010, 09:59
OS, Lazarus, FPC: Win (L 0.9.26 beta FPC 2.2.2)
CPU-Target: 32 Bit

Scrollbox "positionieren"

Beitrag von am2 »

Ich habe vor, ein TImage in einer Scrollbox zu positionieren, also z.B.

Bild: 1000 x 2000
Scrollbox 100 x 100

Die Mitte der Scrollbox soll auf Pixel (250, 250) des Bildes positioniert werden (also bei 25%/12,5%)

Ich habe mir jetzt eine ScrollBox mit einem Image in der Mitte sowie ein Edit auf ein Formular gepappt und mit <ScrollBox>.ScrollBy(DeltaX, DeltaY) herumgespielt.

Folgende Erkenntnisse:
- Anscheinend beziehen sich DeltaX, DeltaY auf das innere Bild. ScrollBy(250, 250) von (0;0) aus sollte also eigentlich zu der gewünschten Positionierung führen (von irgendwelchen Rundungen mal abgesehen)
- Wenn ich mehrfach hintereinander die selbe Operation ausgeführt habe, dann verschob es das hin und her
- negative Werte erzeugten (erwartungsgemäß) eine negative Verschiebung
- Die Position der Scrollbalken wird nicht verschoben

Hat jemand eine Idee, wo ich meinen Fehler suchen muss?

Vielen Dank
AM

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: Scrollbox "positionieren"

Beitrag von six1 »

Naja, ohne tiefer einzusteigen behaupte ich mal folgendes:

ScrollBy verschiebt um die angegebenen Pixel, sonst würde es ja PositionTo heißen...

ohne nachzusehen, funktioniert dies?
ScrollBox1.HorzScrollBar.Position := 250;
Gruß, Michael

Antworten