Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Probleme mit Panel und Align (https://www.delphipraxis.net/109994-probleme-mit-panel-und-align.html)

DelphiManiac 11. Mär 2008 11:22


Probleme mit Panel und Align
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich nutze in meinem Programm zwei Panels,
einen als obere Leiste und einen als Rechte Leiste.

Leider werden die Panels nicht so angezeigt wie ich mir das denke.

Also Panel1 hat Align=alTop und Panel2 hat Align=alRight
nun ist es aber so, dass der Panel1 von Links oben bis rechts oben durchgängig ist und mein Panel2 auf der rechten Seite
nicht bis oben geht, ich würde aber es gerne anders herum haben.
(habe mal einen Screenshot angehängt)

Evtl wisst ihr ja wie man da die Prioriät ändern kann.

Danke euch

taaktaak 11. Mär 2008 11:39

Re: Probleme mit Panel und Align
 
Moin, Moin,
vermutlich funktioniert es, wenn du die beiden Panels in der umgekehrten Reihenfolge placierst. Erst Panel2 mit Align=top,bottom und right, dann das Panel1

s-off 11. Mär 2008 11:41

Re: Probleme mit Panel und Align
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
Zitat:

Zitat von taaktaak
Moin, Moin,
vermutlich funktioniert es, wenn du die beiden Panels in der umgekehrten Reihenfolge placierst. Erst Panel2 mit Align=top,bottom und right, dann das Panel1

nein, das funktioniert leider nicht.

Nutze ein drittes Panel, wenn sich keine andere Lösung finden sollte.

Panel1 => alRight
Panel3 => alClient mit BevelOuter => bvNone
Panel2 => alTop mit Parent => Panel3

Edit1: Kommentar zu taaktaak
Edit2: Screenshot

OregonGhost 11. Mär 2008 11:51

Re: Probleme mit Panel und Align
 
taaktaak hat schon recht. Die von dir genannte "Priorität" ist die Z-Reihenfolge der Controls. In Visual Studio hilft dazu ein profanes "In den Vordergrund". Ich weiß nicht, wie genau man das in Delphi macht. Das Prinzip ist aber dasselbe.

s-off 11. Mär 2008 12:00

Re: Probleme mit Panel und Align
 
Zitat:

Zitat von OregonGhost
taaktaak hat schon recht.

Die Aussage finde ich lustig; wie kann man recht haben, wenn es dann doch nicht funktioniert?
Du kannst VS nicht mir der Delphi-IDE vergleichen.

Ich habe alles ausprobiert, was die Reihenfolge anbelangt; sowohl zur Designtime als auch zur Runtime.
Auch 'Element -> Nach vorne setzen' hilft nicht.

taaktaak 11. Mär 2008 12:00

Re: Probleme mit Panel und Align
 
Jepp, mein Beitrag ist aber trotzdem nicht die Lösung :oops: Die Vorgehensweise von s-off führt zum Erfolg

s-off 11. Mär 2008 12:02

Re: Probleme mit Panel und Align
 
Zitat:

Zitat von taaktaak
Jepp, mein Beitrag ist aber trotzdem nicht die Lösung :oops: Die Vorgehensweise von s-off führt zum Erfolg

Mach Dir nichts draus - ich hatte zuerst das Gleiche im Sinn ;)

Aber dennoch macht es mich stutzig, dass es keine ordentliche Lösung gibt.

Mein Ansatz ist zwar eine Lösung, aber wohl eher eine dahingefrickelte Umgehungslösung :?

vsti 11. Mär 2008 12:17

Re: Probleme mit Panel und Align
 
Hat mich auch schonmal generft, folgendermaßen "gelöst".

Einfach ein zusätzliches Panel:
- Panel1 -> alRight
- Panel2 -> alClient
- auf Panel2 ein Panel3 -> alTop

ups... schon genannt...

Edit: erst lesen dan schreiben -.-

Blubbels 18. Nov 2009 09:02

Re: Probleme mit Panel und Align
 
Ich (Delphi 2006) kämpfe gerade mit demselben Problem - mit dem Unterschied, daß es A. in einer nicht mehr praktikablen Kombination bereits anders klappte, und B. der Workaround hier auch nicht zutrifft.

Grob gesehen habe ich die gleiche Situation: eine linke Leiste, eine Kopfzeile oben, eine Fusszeile unten.

Da ich hier dieselbe Struktur allerdings in einem Dutzend Fenstern habe, verwende ich dafür eine eigene Klasse, die ich in der Formular-Unit in die Deklaration des Formulars einsetze. Dann erzeuge ich im constructor Create dieser Klasse die Panels. Ein Extra-Panel für den "rechten" Bereich (alClient) ist also nicht möglich, da zwischen den drei Panels beliebiges im Form-Konstruktor unbekanntes liegen kann.

Funktioniert hat es übrigens, als nur das linke Panel in meiner eigenen Formularoberklasse erzeugt wurde, und Kopf und Fuß im Formular selber waren - da hatte es die volle Höhe. Nur habe ich diese natürlich im Zuge der Vereinheitlichung auch verschoben, identisch aussehende Panels überall einzeln zu haben ist ja auch nicht das wahre...
Möglich ist es also, nur wie?

Ein einfaches FPanelLeft.SetZOrder(true) aka BringToFront oder SetZOrder(false) aka SendToBack, auch mit folgendem Self.Realign bringt nichts.

Sailor 18. Nov 2009 13:38

Re: Probleme mit Panel und Align
 
Versuch's mal so:

1. Linkes Panel mit Align = alLeft

2. Oberes Panel mit Anchors = [akLeft,akTop,akRight],
Plazieren des Panels direkt neben das linke Panel

3. Wenn die Position von Komponenten auf dem oberen Panel
in Abhängigkeit von dessen Breite geändert werden soll,
dann das Ganze in der Resize-Prozedur der Elternkomponente
erledigen


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:28 Uhr.
Seite 1 von 2  1 2      

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