Einzelnen Beitrag anzeigen

Nico B.

Registriert seit: 16. Okt 2006
Ort: Riesa
67 Beiträge
 
Delphi XE7 Enterprise
 
#1

ScrollBox und FlowPanel richtig verknüpfen

  Alt 3. Nov 2020, 11:58
Hallo zusammen,

ich möchte ein FlowPanel mit Buttons füllen.
Sobald nicht mehr alle Buttons in das FlowPanel passen, soll das FlowPanel eine vertikale Scrollleiste bekommen.
Am liebsten hätte ich die Scrollleiste immer angezeigt, aber ich will nicht den zweiten Schritt vor dem ersten klären...
Die Größe des FlowPanels soll sich außerdem analog zur Fenstergröße ändern.
Und natürlich sollen dann auch die Buttons im FlowPanels entsprechend neu angeordnet werden.

Irgendwie bekomme ich das aber alles nicht richtig verknüppert.

Ich habe eine ScrollBox auf meine Form gepackt und anschließend ein FlowPanel in die ScrollBox.
In das FlowPanel packe ich zur Laufzeit die Buttons. Das geht soweit.

Die ScrollBox soll sich nun an Größenänderungen der Form anpassen.
Um die ScrollBox sollen 10 Pixel Platz bleiben. Ich habe dementsprechend Left- und Top-Eigenschaften der ScrollBox angepasst.
Die Height- und Width-Eigenschaften der ScrollBox habe ich auf Form.ClientHeight bzw. ClientWidth minus 20 gesetzt.
Außerdem habe ich für die ScrollBox Anchors auf [akLeft,akTop,akRight,akBottom] gesetzt.
Die ScrollBox wächst jetzt mit so wie sie soll.

Was muss ich jetzt machen, damit:
  • das FlowPanel immer genauso breit ist wie die ScrollBox?
  • das FlowPanel immer mindestens so hoch ist wie die ScrollBox?
  • das FlowPanel die Buttons zur Laufzeit bei Größenänderung selbständig neu anordnet?

Ich habe natürlich schon gelesen, gegoogelt, gesucht.
Immer wieder wird geschrieben, ich muss die Align-Eigenschaft des FlowPanel auf alTop stellen.
Autosize und Autowrap sollen auch true sein.
Aber irgendwie klappt es nicht richtig.

Mit Align=alTop Autosize=true und Autowrap true
erhalte ich eine vertikale Scrollleiste. So weit so gut.
Vergrößere ich dann zur Laufzeit mein Fenster zur Seite, rutschen die Buttons aber leider nicht nach.
Obwohl das FlowPanel zur Seite mit wächst.
Vergrößere ich dann zur Laufzeit mein Fenster nach unten, verschwindet die Scrollbar, wenn alle das gesamte FlowPanel und alle Buttons zu sehen sind.
Leider wächst das FlowPanel aber noch nicht mit.
Verkleinere ich dann zur Laufzeit mein Fenster wieder (Höhe), erscheint die Scrollbar wieder.
Der Teil funktioniert also schon mal ganz gut.
Nico Bäger
  Mit Zitat antworten Zitat