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 TFlowPanel und Autosize (https://www.delphipraxis.net/192365-tflowpanel-und-autosize.html)

news2swen 12. Apr 2017 14:27

TFlowPanel und Autosize
 
Hallo

ich habe ein Flowpanel (alClient, Autowrap=true,Autosize=true), auf welchem ich zur Laufzeit Elemente (Frames) erstelle. Diesen Frames gebe ich eine feste Größe mit. Je nachdem, wie viele Elemente ich hinzufüge, wandern sie irgendwann aus dem Formular heraus und sind nicht mehr sichtbar.

Mein Ziel ist nun, die Frames so zu skalieren, dass sie alle im sichtbaren Bereich des Flowpanels auftauchen. Gibt es da eine entsprechende Eigenschaft im Flowpanel, bzw wie könnte ich das Problem lösen (ich habe leider keinen Event/keine Propertie gefunden, welche mir mitteilt, dass ich über die Grenzen hinausgeschossen bin -> in dem Falle könnte ich die Frames ja durchgeehn und verkleinern, bis sie alle passen)?

Des weiteren würde ich die Frames gern zentriert anordnen, sprich füge ich nur ein Frame ins Flowpanel ein, so soll es mittig oben positioneirt sein, bei zwei Frames jeweils rechts und linke von der Mittellinie usw. Gibts da was?

Gruß
Swen

stahli 12. Apr 2017 14:46

AW: TFlowPanel und Autosize
 
In dem Fall würde ich dazu raten, ein einfaches Panel zu nehmen und die Position der einzelnen Frames zu berechnen und selbst zu setzen.

Vielleicht kann Dir als Anregung meine alte Komponente dienen: http://www.delphipraxis.net/165177-scrollboxflow.html

Ich erzeuge einfach so viele TRects in einem Array, wie es Controls gibt.
Dann berechne ich die Positionen (TRects) bis das Ergebnis passt und dann weise ich die Positionen den Controls zu.

Anschieben kannst Du die Berechnung immer, wenn ein Frame hinzugefügt oder gelöscht wird oder wenn das Panel in der Größe geändert wird.

news2swen 18. Apr 2017 11:57

AW: TFlowPanel und Autosize
 
das hilft mir leider nicht so richtig. Deine Komponente ordnet die Panels entsprechend der Einstelllungen zwar optimal an, wenn aber mehr Panels da sind, als auf das Formular passen, schaltet sich der Scrollbar zu.

Für diesen Fall wollte ich aber die Panels verkleinern, so dass doch wieder alle auf das Formular passen.

stahli 18. Apr 2017 12:08

AW: TFlowPanel und Autosize
 
Eine fertige Komponente wirst Du bei der Anforderung vermutlich nicht finden.

Meine Komponente könnte eine Ausgangsbasis darstellen, die Du an Deine Bedürfnisse anpassen müsstest.


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