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 Docking-Problem (https://www.delphipraxis.net/41160-docking-problem.html)

Mari 27. Feb 2005 00:28


Docking-Problem
 
Hallo!

Ich habe in Delphi 6 eine Haupt-Form die keine bis mehrere gleichartige Forms oder Frames gedockt aufnehmen können soll. Der ganze Docking-Spaß funktioniert eigentlich auch ganz gut, auch mit relativ wenig Aufwand. Aber beim manuellen Ausrichten der gedockten Fenster mit dem kleinen Splitter-Bereich mit der Maus ergibt sich eine wesentliche Unschönheit:

Da die angedockten Forms eine Mindesthöhe haben (Constraints.MinHeight), passiert es, wenn man ein unteres gedocktes Fenster mit dem Splitter über den unteren Rand des darüberliegenden Fensters hinauszieht, daß der Splitter und die Docking-Linien des unteren unter (oder besser: hinter) dem oberen Fenster verschwinden. Außerdem scheinen beide Fenster nun irgendwie beliebig abgeschnitten zu sein, so daß die (sichtbaren) Inhalte von beiden mitten in ihren internen Controls aufhören. "Gut", dachte ich, "verschiebste das Ding hinterher halt wieder per Code wenn es zu hoch gewandert ist". Aber das hat nicht funktioniert, die Fenster sind dabei dann zwar so erschienen wie ich es wollte, aber sowohl Splitter als auch Docking-Leiste waren dann nicht mehr mit der Maus ansprechbar, fast als hätte der DockingManager nicht mitbekommen daß auch Splitter und Docking-Leiste wieder zurück sollten (und weiterhin hinter dem oberen Fenster residierten obwohl er sie korrekt gezeichnet hat).

Hat jemand eine Idee für mich wie man das korrigieren kann?
Ich würde ziemlich davor zurückschrecken einen eigenen DockingManager zu schreiben, das erscheint mir ein bißchen zuviel Aufwand.

Oder weiß jemand eine Möglichkeit, wie man die Position des Splitters während des Verschiebens einschränken kann? Die Position könnte ich mir ja über HauptForm.MouseMove holen.

Ach, noch was, ich muß das ganze für Windows und Linux hinkriegen, würde soweit es geht also gerne mit Bordmitteln arbeiten und auf diw WinAPI verzichten...

Einen Riesen-Dank schonmal für Eure Hilfe!

Viele Grüße,
Mari.

p.s.: Ich habe es auch mit Frames probiert, aber da sich in Bezug auf das Problem dabei kein Unterschied ergab, bin ich der Caption-Eigenschaft zuliebe zu den Forms zurückgekehrt.

digitalos 20. Mär 2006 16:31

Re: Docking-Problem
 
Tagchen...

hab auch lange rumgerätselt & es dann so gelöst

Delphi-Quellcode:
  breite := bevel1.Width;
  shellcombobox1.Width := breite;
  shelllistview1.Width := breite;
  bevel1.Constraints.MinWidth := 200;
die beiden Componenten hab ich in einem Bevel ausgerichtet, der Bevel muss aber links,rechts,oben oder unten angedockt sein sonst macht der splitter alles .... :wall:
& den Splitter dann nochmal ausrichten (funktioniert super bei mir)


vielleicht hilfts

gruß digi


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