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 Panel u. Splitter (https://www.delphipraxis.net/20082-panel-u-splitter.html)

Tau 13. Apr 2004 13:30


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

Mirilin 13. Apr 2004 13:37

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:
procedure TMainForm.MM_ShowPanelClick(Sender: TObject);
begin
  SplitterUD.Visible := not PanelSaR.Visible;
  PanelSaR.Visible  := MM_ShowPanel.Checked;
end;
mfg Tobias

shmia 13. Apr 2004 13:48

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.

Tau 13. Apr 2004 14:52

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

shmia 13. Apr 2004 15:51

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.

Tau 14. Apr 2004 01:41

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

Robert_G 14. Apr 2004 01:59

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.

Tau 14. Apr 2004 02:37

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

Robert_G 14. Apr 2004 05:01

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].

Tau 17. Apr 2004 23:44

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 17:32 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