AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

3 Panels + 2 Splitter = Chaos

Offene Frage von "berens"
Ein Thema von berens · begonnen am 1. Feb 2007 · letzter Beitrag vom 1. Feb 2007
Antwort Antwort
berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#1

3 Panels + 2 Splitter = Chaos

  Alt 1. Feb 2007, 13:28
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?
  Mit Zitat antworten Zitat
TheReaper

Registriert seit: 27. Feb 2003
Ort: chemnitz
90 Beiträge
 
Delphi 2005 Personal
 
#2

Re: 3 Panels + 2 Splitter = Chaos

  Alt 1. Feb 2007, 13:56
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.
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: 3 Panels + 2 Splitter = Chaos

  Alt 1. Feb 2007, 14:53
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)
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#4

Re: 3 Panels + 2 Splitter = Chaos

  Alt 1. Feb 2007, 15:01
P1 (align=alleft), S1 (align=alleft), P2 (align=alleft), S2 (align=alleft), P3 (align=alclient)

funzt!
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: 3 Panels + 2 Splitter = Chaos

  Alt 1. Feb 2007, 15:20
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.
Angehängte Dateien
Dateityp: zip paneltest_160.zip (7,6 KB, 19x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#6

Re: 3 Panels + 2 Splitter = Chaos

  Alt 1. Feb 2007, 15:55
hier mal mein beispiel...
Angehängte Dateien
Dateityp: zip panel_103.zip (196,9 KB, 24x aufgerufen)
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: 3 Panels + 2 Splitter = Chaos

  Alt 1. Feb 2007, 16:07
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.
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#8

Re: 3 Panels + 2 Splitter = Chaos

  Alt 1. Feb 2007, 17:14
stimmt, komisches verhalten.
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#9

Re: 3 Panels + 2 Splitter = Chaos

  Alt 1. Feb 2007, 18:23
..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!
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: 3 Panels + 2 Splitter = Chaos

  Alt 1. Feb 2007, 18:32
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:03 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