![]() |
Panel u. Splitter
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Leute
habe auch wieder mal ein kleines Problem. Ich versuche zur Laufzeit einige Panel und Splitter einzuschalten. ( Visible := False ) Habe aber immer wieder das Problem das der Splitter nicht am richtigen Ort sich positioniert. Falls jemand einen anderen Lösungsvorschlag hat, ich bin für jede Anregung Dankbar. Ein kleines Demo ist im Anhang Guss Tau |
Re: Panel u. Splitter
:hi:
Ich hatte das auch einmal. Ich habe da einfach zuerst den Splitter auf Visible, und dann das Panel auf ebensolches gesetzt.
Delphi-Quellcode:
mfg Tobias
procedure TMainForm.MM_ShowPanelClick(Sender: TObject);
begin SplitterUD.Visible := not PanelSaR.Visible; PanelSaR.Visible := MM_ShowPanel.Checked; end; |
Re: Panel u. Splitter
Ich würde TSplitter.AutoSnap auf False setzen. Die Defaulteinstellung (True)
führt manchmal dazu, dass Controls verschwinden und trotz "geziehe & geklicke" am Splitter nicht wieder auftauchen. |
Re: Panel u. Splitter
Hallo Mirilin u. shmia
shmia Danke für den Tipp. Mirilin habe es ausprobiert, leider ohne erfolg. Der Splitter ist entweder gar nicht zu Sehen oder ist an der Stelle wo man ihn nicht brauchen kann. hat jemand vielleicht noch eine Idee :wall: Gruss Tau |
Re: Panel u. Splitter
Wichtig:
du hast 2 Controls (A und B) und dazwischen ist der Splitter. Ein Control (B) muss Align auf alClient gesetzt haben, während beim anderen Control (A) die Eigenschaft Align auf alLeft, alRight, alTop oder alBottom gesetzt sein muss. (alNone ist nicht zulässig !!) Splitter.Align muss gleich ControlB.Align sein ! In einem Container (Formular, Frame, Groupbox, Panel, TabSheet, ...) darf immer nur ein Splitter sitzen. Soll mehr als ein Splitter verwendet werden, dann wird ein zusätzlicher Container (Panel, Groupbox) benötigt ! Nur bei Beachtung dieser Regeln funktioniert der Splitter. |
Re: Panel u. Splitter
Hallo shmia
Danke für die Wichtigen Hinweise. Ich glaub ich muss mir was anderes einfallen. Es wird verdammt kompliziert wenn ich es auch noch in die Regedit schreiben und wieder auslesen will in der richtigen Reihenfolge. gibt es vielleicht irgendwo eine Komponente die so ähnlich funktioniert? :wall: Gruss Tau |
Re: Panel u. Splitter
Aber Hallo...
Du willst für ein bisschen Panel & Splitter-Gebastel gleich eine Komponente saugen? :shock: Neben allem was Shmia gesagt hat, gibt es es noch einen simplen (und eigentlich offensichtlichen :roll: ) Trick: Warum sorgst du nicht dafür, dass der Splitter nachdem PanelX.Show auch wirklich vor/nach/über/unter dem Panel liegt??? Um das Layout zu speichern muss doch nicht der ganze Käse in die Registry ;) Es reicht doch die Breite/Höhe des Panels abzulegen, der Rest ergibt sich doch daraus. |
Re: Panel u. Splitter
Hallo Robert_G
Ganz so einfach ist es aber nicht den du musst ja noch berücksichtigen das einer der Panel auf Client gesetzt ist. Beim ausblenden wird’s dann erst richtig lustig den welchen Panel setze ich dann auf Client. Beim auslesen aus der Regedit ist dann zu berücksichtigen in welcher Reihenfolge wurden sie erstellt usw. usw. Ich glaube das ist ein rann ohne Ende. Gruss Tau |
Re: Panel u. Splitter
Ein Splitter macht ja nur Sinn, wenn ein Control alLeft, alRight, alBottom oder alTop ist.
Also musst du neben den Außmaßen (alTop/alBottom -> Height; alLeft/alRight -> Width; alClient -> nüscht) nur noch Align ablegen. Daraus kann man IMHO alles ableiten, was man zur Darstellung braucht. Wenn sich auch noch das parent Control ändern kann, dann legst du das auch mit ab. Den Splitter erzeugst du dann für jedes Control mit Align not in [alClient, alNone]. |
Re: Panel u. Splitter
Hallo Robert_G
dadurch das ich so ungefähr 40-50 Formulare habe und immer mit unterschiedlicher Anzahl von Panel ist die Lösung nicht gerade das was ich mir vorstelle. Habe das ganze mit einer Komponente hingebogen. :witch: :witch: Trotzdem Danke noch mal für deinen Tipp Gruss Tau |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:09 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