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 FMX Wie finde ich heraus, ob eine Scrollbar sichtbar ist? (https://www.delphipraxis.net/189923-fmx-wie-finde-ich-heraus-ob-eine-scrollbar-sichtbar-ist.html)

Sherlock 8. Aug 2016 15:01

FMX Wie finde ich heraus, ob eine Scrollbar sichtbar ist?
 
Ich habe eine FMX.THorzScrollBox auf einem Formular variabler Breite. Sobald das Formular groß genug ist, wird die horizontale ScrollBar dieser ScrollBox automatisch ausgeblendet. Es wird dann auch weniger Höhe benötigt (wie hoch diese Scrollbar im Anzeigefall ist, wäre übrigens noch eine Frage). Im OnResize der ScrollBox würde ich gerne korrekt reagieren, es gibt aber leider nichts äquivalentes zum VCL IsScrollBarVisible. Wer weiß Rat?

Grüßle,
Sherlock

Rollo62 8. Aug 2016 18:08

AW: FMX Wie finde ich heraus, ob eine Scrollbar sichtbar ist?
 
Hallo Sherlok,

ja das ist Schade das immer die rudimentärsten Zugriffe fehlen, und man sich etwas drumherumbauen muss was eigentlich schon da sein müsste.
Ich habe das auch einige Workarounds machen müssen, aber ich setze den TImageViewer ein, welcher auf der ScrollBox basiert.

Schau mal ob dir dies hier weiterhilft:

http://docwiki.embarcadero.com/Libra...ewportPosition
http://docwiki.embarcadero.com/Libra...cContentBounds
http://docwiki.embarcadero.com/Libra...PositionChange
http://docwiki.embarcadero.com/Libra...nHScrollChange
http://docwiki.embarcadero.com/Libra...nVScrollChange

Rollo

Sherlock 9. Aug 2016 09:04

AW: FMX Wie finde ich heraus, ob eine Scrollbar sichtbar ist?
 
Nunja, nach einer guten Mütze voll Schlaf habe ich mir gedacht, daß es ja nun nicht wirklich so schwer ist - zumindest in meinem konkreten Fall. Wenn der Inhalt breiter ist, als die ScrollBox wird naturgemäß der ScrollBar eingeblendet. Also muss ich eine simple Breitenabfrage durchführen. Ich weiss zwar immer noch nicht, wie hoch ein horizontaler TScrollBar ist, aber...im Moment tun 23 Pixel ganz gut. Vermutlich muss ich eine unsichtbare TScrollBar irgendwo einbinden, nur um deren Höhe zu ermitteln. :roll:

Sherlock

Rollo62 10. Aug 2016 06:12

AW: FMX Wie finde ich heraus, ob eine Scrollbar sichtbar ist?
 
Komt drauf an was du in der ScrollBox machen willst.
Wenn du nur "normale" Komponenten drinhast die nur feste Breite haben mit z.B. Align := Client oder Horizontal, dann sollte das einfach sein.
Aber willst du ach Pannen und Zoomen, am Besten mit den schönen Animationn ?

Ich habe in dem TImageViewer leider ein TImage und noch ein TLayout als Overlay für Zeichenelemente,
was sich mit Zoom und Pan beliebig positionieren kann.
Da fängt es dann an lustig zu werden, wenn alle Positionen und Skalierungen passen sollen.

Der Trick ist dabei das man auf das integrierte TImage zugreifen kann, man kann das als ChildControl zurückbekommen.
Und mein TLayout lege ich dann einfach darüber auf den gleichen Parent.

Rollo


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 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