Ich habe gerade einwenig mit DockTabSet experimentiert und bin - neben eher bescheidener Dokumentation - auf einige Probleme gestoßen und wollte mal fragen, ob jemand diese Komponente erfolgreich einsetzt?
An zwei Dingen hänge ich momentan:
1.
Zwei übereinander links gedockte Fenster werden über den Pin "eingeklappt", wenn man sie nun wieder verankert (über den Pin) sind sie nebeneinander und nicht mehr übereinander. Gibts eine Möglichkeit das verhalten beim wieder verankern zu bestimmen?
2.
Wenn ich beim Programmstart eine bestimmte Anordnung herstellen möchte (später mal die zuletzt eingestellte, momanten einfach zwei Fenster links übereinander angedockt und verankert), dann funktioniert das nicht wenn ich die Fenster vor dem ManualDock nicht sichtbar mache, dadurch "blitzen" sie aber am Bildschirm auf. Docke ich sie mit Visible auf False, dann wird das Fenster einfach so eingefügt als hätte ich den Parent auf das Panel gesetzt...
Die Experimente basieren auf dem Beispiel von
Jeremy North. Leider gibt es seinen
QC-Client nicht mehr als download um da mal nachzusehen.
Edit: Da das ganze im Zuge einer Umstellung in einem größeren Projekt auftritt habe ich hier ein kleines Beispiel zusammengestellt (Docking an der rechten Seite ist nicht komplett impl.).
Funktionen:
- Über "Create Docking Client" kann ein entspr. Fenster erzeugt werden das dann vornehmlich links oder mittig angedockt werden kann (rechts geht auch, aber die Vorschau funktioniert in dem Beispiel nicht).
- "Show hidden forms" erfüllt momentan keinen echten Zweck
- Über "Load v2" werden 4 Clients erzeugt und angedockt (2 links übereinander, 2 rechts übereinander). Das funktioniert, abgesehen davon, dass die 4 Clients kurz aufblitzen (manchmal so kurz das man es nicht sieht). Ich habe im Beispiel DocClient.Position auf poDesigned gestellt, damit man sich auf die linke, obere Ecke des Bildschirms konzentrieren kann. Bei mehreren Starts ist der Effekt aber deutlich sichtbar, mit Skin (Carbon bzw. Light) habe ich das Gefühl das es häufiger Auftritt als ohne. (habe Windows und Light gleichzeitig drin und schalte dann immer mal um).
- Über "Load v1" werden die selben Fenster erzeugt, aber erst sichtbar gemacht nachdem sie gedockt wurden.
Hier ist das verhalten davon abhängig, wie die "DocClient.Position" gesetzt ist(!!).
Ist sie auf poDesigned (für Load v2) haben die Clients eine Caption liegen aber nun nebenneinander.
Stellt man Position um auf "poDefaultPosOnly", erscheinen meist nur 2 der 4 Fenster und haben keine Caption. Vergrößert man dann das Hauptfenster (in der Höhe) erscheinen plötzlich alle 4 Fenster und haben wieder ihre Caption, sind aber links übereinander und rechts nebeneinander angeordnet. Letzteres habe ich eigentlich erst im Zuge dieses Beispiels bemerkt vorher hatte ich immer "poDefaultPosOnly" eingestellt.
- Mit "Load v2" neu starten und dann in Client "0:.." und "1:.." die beiden "pins" klicken. Beide Fenster liegen nun versteckt im DockTabSet. Nun jedes wieder ausklappen und den "Pin" klicken. Die Fenster liegen nun nebeneinander statt übereinander.