![]() |
Panels ausrichten
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,
Auf meiner Form befinden sich zwei TPanel. Panel1.Align := alClient; Panel2.Align := alBottom; Bei Klick auf einen Button soll Panel1 verschwinden und Panel2.Align := alClient gesetzt werden. Nach erneutem Klick auf den Button soll wieder Panel1.Align := alClient und Panel2.Align := alBottom sein. Sobald ein zweites Mal auf den Button geklickt wird, vergrößert sich jedoch die Form um fast das Doppelte! Wie kann ich das verhindern? Mein Code:
Delphi-Quellcode:
das hilft auch nichts:
if Panel1.Visible then
begin Panel1.Hide; Panel2.Align := alclient; end else begin Panel1.Show; Panel2.Align := albottom; end;
Delphi-Quellcode:
Gruß
if Panel1.Visible then
begin Panel2.Tag := Panel2.Height; Panel1.Tag := Panel1.Height; Panel1.Hide; Panel2.Align := alclient; end else begin Panel1.Show; Panel1.Align := Alclient; Panel2.Align := albottom; Panel2.Height := Panel2.Tag; Panel1.Height := Panel1.Tag; end; API |
AW: Panels ausrichten
Versuch es mal so
Delphi-Quellcode:
Manchmal kommt es auf die Reihenfolge an ;)
if Panel1.Visible
then begin Panel1.Hide; Panel2.Tag := Panel2.Height; Panel2.Align := alClient; end else begin Panel2.Align := alBottom; Panel2.Height := Panel2.Tag; Panel1.Show; end; |
AW: Panels ausrichten
Verwende doch einen TSplitter mit
Delphi-Quellcode:
,
Align = alBotton
Delphi-Quellcode:
und
Height = 4
Delphi-Quellcode:
.
Color = clBlue
Mit dem Property
Delphi-Quellcode:
und
Autosnap = True
Delphi-Quellcode:
kann der Benutzer das untere Panel bis auf 40 Pixel verkleinern.
MinSize = 40
Zieht er den Splitter weiter nach unten verschwindet das untere Panel ganz. Der Splitter bleibt aber weiterhin sichtbar und der Benutzer kann das untere Panel wieder einblenden. Vorteile: Kein Code notwendig, keine Platzverschwendung für den Button |
AW: Panels ausrichten
Danke euch beiden, der Code von Sir Rufo hat funktioniert. Die Idee mit dem TSplitter werde ich noch anschauen.
|
AW: Panels ausrichten
Ich glaub es geht auch damit, das Align auf Custom zu stellen und das Positionieren im dem OnAlignPosition-Event de Form zu regeln.
|
AW: Panels ausrichten
Zitat:
Wie macht iht das mit dem Speichern der Splitterposition? |
AW: Panels ausrichten
Im einfachsten Fall könntest du ein TIniFile nutzen?
Wurde ja schließlich dafür entwickelt um Fensterposition, Größe, etc. zu speichern. MrMooed |
AW: Panels ausrichten
Der Trick ist nicht die Splitter-Position zu speichern, sondern die Höhe des Labels, das nich alClient ist.
|
AW: Panels ausrichten
Zitat:
|
AW: Panels ausrichten
Zitat:
Vielen Dank. Werde das dieser Tage probieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 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