![]() |
3 Panels + 2 Splitter = Chaos
Hallo!
Ich brauche: ein Panel, welches 3 Spalten hat. Die Spalten sollen sich in der Breite verändern lassen. Panel muss Breite beibehalten. Ich habe ein Panel ("Panel0") mit einer bestimmten Größe (die nicht geändert werden soll). Auf dem Panel sind wiederum 3 Panels die von links nach rechts durch TSplitter voneinander getrennt sind: Panel1 Splitter1 Panel2 Splitter2 Panel3 alLeft alLeft alClient alRight alRight 100 30 30 Diese Zahlen geben meine Constraints.MinWidth-Werte für die Panels an. Die Splitter haben auch den Wert (100, 30) für MinSize. Problem: sobald ich Splitter1 (zu) weit nach rechts bewege, wird das Panel, auf dem sich all diese Komponenten befinden (Panel0) nach rechts erweitert. Lustigerweise sogar wenn Panel0.Align = alClient ist *lol* (Mein Panel0 hat noch Margins.Left und .Right = 5). Mit Constratins.MinWidth und MaxWidth für die Panels hilft auch nicht, und die Splitter reagieren auch nicht auf die ihnen zugewiesene OnClick/OnEnter/OnResize Funktion (doppelt geprüft!). Tjo, was macht man denn da? |
Re: 3 Panels + 2 Splitter = Chaos
Hallo,
Da du Delphi 2006 hast, solltest du dir mal das TGridPanel angucken. Das ist ein Panel auf dem man tabellenartig verschieden Kompos drauf legen kann. Das sollte eigentlich das machen was du willst ohne dieses Panel-Splitter-Chaos. |
Re: 3 Panels + 2 Splitter = Chaos
Die Komponente lässt sich zwar nur sehr verwirrend bedienen, sieht aber auf den ersten Blick ganz gut aus.
Die Splitter lassen sich aber nicht zum Größe-ändern in dieser Komponente benutzen, oder? Wenn ja, wie? Eine Row, mit 5 Columns (P1, S1, P2, S2, P3) hilft da auch nicht. (der Benutzer soll ja die Breite der Spalten bestimmten dürfen) |
Re: 3 Panels + 2 Splitter = Chaos
P1 (align=alleft), S1 (align=alleft), P2 (align=alleft), S2 (align=alleft), P3 (align=alclient)
funzt! |
Re: 3 Panels + 2 Splitter = Chaos
Liste der Anhänge anzeigen (Anzahl: 1)
Hm, also ich habe alle TColumnItems auf ssAuto und die Sachen entsprechend deinen Angaben eingerichtet. Komischerweise geht nun aber trotzdem Panel3 (alClient) nicht bis zum rechten Rand des Gridpanels
dazu gehöriges TControlItem: Row0 Column4 (Base 0 Index) Colspan 1 Rowspan 1 dazu gehöriges TColumnItem: ssAuto, 100 Sobald ich die Splitter (an den Panelrand) bewege, verschieben die sich unter die anderen Panels und verschwinden. Alle Objekte sind aber im Containerbereich von Gridpanel1. Wer es nachvollziehen möchte: Siehe Anhang. |
Re: 3 Panels + 2 Splitter = Chaos
Liste der Anhänge anzeigen (Anzahl: 1)
hier mal mein beispiel...
|
Re: 3 Panels + 2 Splitter = Chaos
Vielleicht liegt es ja an mir:
Wenn ich mit deinem Programm (deine Original .exe) das mittlere Panel nach rechts außen vergrößere (bis zum Anschlag), den Splitter nochmals anpacke und dann nochmal über den Anschlag hinausziehe, vergrößert sich auch hier das komplette Gridpanel1 um einige Pixel. Vorgang lässt sich beliebig oft wiederholen. Der linke Splitter blockiert beim selben Verfahren (nur halt nach Links), und lässt eine Größenänderung zwischen P1 und P2 dann garnicht mehr zu. |
Re: 3 Panels + 2 Splitter = Chaos
stimmt, komisches verhalten.
|
Re: 3 Panels + 2 Splitter = Chaos
..habe herausgefunden, dass es an der größenbegernzung durch die constraints definitionen liegt, dass das panel größer wird. lösch diese wieder bei den panels und es passiert nix!
|
Re: 3 Panels + 2 Splitter = Chaos
Leider klappt es dann bei mir auch nicht (alle Contraints von allen Panels auf 0), weil wenn die Splitter beide am Rand sind, geht Panel2 wieder nicht kleiner machen. (AutoSnap bei den Splittern aus, MinSize auf 30).
Wenn Constraints weg ist, könnte es auch passieren, dass ein Panel quasi verschwindet (weil MinSize nicht immer so 100% funktioniert). Nicht so gut :/ Danke schonmal für die bisherigen Bemühungen, bin für weitere Tips nach wie vor sehr dankbar. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz