[Erledigt] TFlowpanel Scrollbars
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
[Erledigt] TFlowpanel Scrollbars
eine weitere Frage / Anregung
Im Prinzip ist das TFlowpanel ein geniales Teil. Leider hat es keine Scrollbars. Kann man das irgendwie realisieren?
Wenn man das beiliegende Beispiel kompiliert und die Fenstergröße verändert, sollte recht schnell klar sein warum.
Im Prinzip ist das TFlowpanel ein geniales Teil. Leider hat es keine Scrollbars. Kann man das irgendwie realisieren?
Wenn man das beiliegende Beispiel kompiliert und die Fenstergröße verändert, sollte recht schnell klar sein warum.
- Dateianhänge
-
- Flowtest.zip
- (306.28 KiB) 61-mal heruntergeladen
Zuletzt geändert von MacWomble am Di 7. Jun 2016, 10:05, insgesamt 1-mal geändert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
Re: TFlowpanel Scrollbars
Einfach eine TScrollBox auf das Formular legen und Parent vom TFlowPanel zu ScrollBox1 ändern. Align jeweils auf alClient stellen. So funktioniert das beim mir bei deinem Beispiel (Windows 7).
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
Re: TFlowpanel Scrollbars
Danke funktioniert.
Das hatte ich gestern auch versucht, da bekam ich aber beide Scrollbalken - irgendwas habe ich da wohl falsch gemacht.
Das hatte ich gestern auch versucht, da bekam ich aber beide Scrollbalken - irgendwas habe ich da wohl falsch gemacht.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
Re: TFlowpanel Scrollbars
Michl hat geschrieben:Einfach eine TScrollBox auf das Formular legen und Parent vom TFlowPanel zu ScrollBox1 ändern. Align jeweils auf alClient stellen. So funktioniert das beim mir bei deinem Beispiel (Windows 7).
Seltsam. Wenn das FlowPanel client-aligned ist, dann ist es genauso groß wie die Scrollbox. Gerade da sollten keine Scrollbars erscheinen. Ich hatte immer gedacht, die Scrollbox wäre dafür da, Inhalte zu scrollen, die größer sind als die Scrollbox.
Re: [Erledigt] TFlowpanel Scrollbars
Es geht auch ohne Scrollbox: Einfach die Eigenschaft "AutoScroll" des Formulars einschalten.
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
Re: [Erledigt] TFlowpanel Scrollbars
wp_xyz hat geschrieben:Es geht auch ohne Scrollbox: Einfach die Eigenschaft "AutoScroll" des Formulars einschalten.
aber dann meist nur sinnvoll, wenn das Flowpanel die gesamte Form bedeckt
Zuletzt geändert von MacWomble am Di 7. Jun 2016, 12:14, insgesamt 1-mal geändert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
Re: [Erledigt] TFlowpanel Scrollbars
Wenn man keine horizontale Scrollbars will (dafür ist wohl dieses TFlowPanel gedacht), muss man der Scrollbox die Breite des FlowPanels mitgeben.wp_xyz hat geschrieben:Seltsam. Wenn das FlowPanel client-aligned ist, dann ist es genauso groß wie die Scrollbox. Gerade da sollten keine Scrollbars erscheinen. Ich hatte immer gedacht, die Scrollbox wäre dafür da, Inhalte zu scrollen, die größer sind als die Scrollbox.
Es kann schon sein, dass alClient Höhe und Breite vorschreiben soll, scheinbar ist dies aber weniger wichtig, als die vom FlowPanel berechnete Höhe. Ob das falsch ist, kann ich nicht sagen (ich habe das FlowPanel noch nie benutzt).
Eine alternative (die wahrscheinlich bessere) Lösung wäre, FlowPanel.Align auf alNone zu stellen, die linke, obere und rechte Anchorseite mit den Seiten der ScrollBox zu verankern und FlowPanel.AutoSize auf True stellen.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;