![]() |
Splitter-Positon auf 0 ?
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe folgendes Problem:
Ich setze beim Starten (im OnCreate) den Splitter, also besser gesagt die Breite des linken Controls, auf einen Wert. Soweit, sogut. Wenn ich aber die Breite auf 0 setze, dann geschieht ein Wunder: Entgegen allen Gesetzen der Logik, ist der Splitter plözlich links vom Control :shock: Folge: Der Splitter ist unbrauchbar :? Also so:
Code:
Und beim auf 0 setzen dann so:
*____ ____
| | || | | | | || | | | | || | | |____| || |____|
Code:
Dann geht natürlich gar nichts mehr ...
****____ ____
|| | | | | || | | | | || | | | | || |____| |____| Ein setzen von Splitter.left := Memo1.left + Memo1.width + 1; hat auch nichts gebracht, zumindest nicht im FormCreate, also in nem Buttonclick geht's, aber wer will schon lesen "Zum abschließenden Laden der Einstellungen bitte Knopf drücken" :mrgreen: Anbei ein Beispielprojekt ;) |
Re: Splitter-Positon auf 0 ?
Sxchönes Demo. Wäre jetzt bestimmt noch hilfreich, wenn du die Unit1.pas mitliefern würdest, so kann man damit gar nichts anfangen.
|
Re: Splitter-Positon auf 0 ?
Sorry :oops: neuer Anhang ist schon oben ;)
|
Re: Splitter-Positon auf 0 ?
Hallo Julius,
die Borland-Entwickler bestimmen das Control, dessen Dimension der Splitter steuert, durch PtInRect(). Damit das funktioniert haben sie Splitter.MinSize mit einer Untergrenze von 1 festgeschrieben. Wenn du einen Splitter auf einer Form verwendest, dann sollten die beiden angrenzenden Controls diese MinSize als Constraint übernehmen, sonst unterläufst du die Rahmenbedingungen. Grüße vom marabu |
Re: Splitter-Positon auf 0 ?
Und da soll man drauf kommen :shock:
Auch wenn ichs toll fand, dass man das links ganz wegmachen konnte werde ich das jetzt einfach mit minsize=1 und in den constaints auch ... :???: Nochmal thx :) |
Re: Splitter-Positon auf 0 ?
Wenn du es so toll findest, dann hilft auch das:
Delphi-Quellcode:
marabu
procedure TDemoForm.HideButtonClick(Sender: TObject);
begin Splitter.Parent := nil; LeftMemo.Parent := nil; end; procedure TDemoForm.ShowButtonClick(Sender: TObject); begin LeftMemo.Parent := self; Splitter.Parent := self; end; PS: Die Reihenfolge ist übrigens wichtig... |
Re: Splitter-Positon auf 0 ?
Nein, diese Lösung ist suboptimal - schließlichb soll beim satren des Programms der Splitter einfach nur wieder da sein, wo er beim Beenden war ;)
Man kann jetzt eben nichts mehr verstecken, und fertig :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 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