W formularzu mam dwie duże kontrolki i między nimi TSplitter
. Kontrola na górze jest wyrównana do góry, a kontrola na dole jest dopasowana do klienta. Tak więc, gdy zmieniam rozmiar formularza, kontrola na górze pozostaje taka sama, podczas gdy ta na dole jest zmienna. Następnie rozdzielacz między nimi kontroluje wysokość kontrolki na górze.Jak zachować kontrolę widoczną w formularzu podczas korzystania z rozdzielacza?
Jednak gdy rozmiar formularza zostanie zmieniony na mniejszą wysokość niż górny element sterujący, dolna kontrolka zostanie ukryta. Próbowałem za pomocą ograniczenia do dostrojenia, jak to reaguje, ale bez powodzenia ...
- kiedy rozdzielacz jest zmieniany, nie powinien pozwolić użytkownikowi na przeciągnij go w dół dalej niż spodzie kontrolki min wysokość
- gdy forma jest zmieniany mniejsza niż dolna kontrola pozwala, powinien on automatycznie dopasowuje wysokość górnej kontrolki, aby umożliwić dolna kontrola dopasować
- kiedy ustawić dołu kontrolki
MinHeight
ograniczenia do, na przykład, 100, gdy zmieniając rozmiar splittera, sprawia, że forma rzeczywiście rośnie, aby dopasować się do dolnej kontrolki, zamiast zatrzymywać użytkownika, by dalej skalować. - Po ustawieniu właściwości splittera na
MinSize
na, na przykład, 100, podczas zmiany rozmiaru splittera, otrzymuję bardzo nieprawidłowe wyniki (górna kontrolka znika) i nadal ukrywa dolną kontrolę.
Jak mogę upewnić się, że dolna kontrola jest zawsze widoczna, gdy rozdzielacz lub forma są rozmiaru bez zmieniania rozmiaru formularza?
kod DFM:
object Form1: TForm1
Left = 310
Top = 121
Caption = 'Form1'
ClientHeight = 374
ClientWidth = 434
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Splitter1: TSplitter
Left = 0
Top = 129
Width = 434
Height = 7
Cursor = crVSplit
Align = alTop
Beveled = True
end
object Panel1: TPanel
Left = 0
Top = 0
Width = 434
Height = 129
Align = alTop
Caption = 'Panel1'
TabOrder = 0
ExplicitLeft = 48
ExplicitTop = 16
ExplicitWidth = 313
end
object Panel2: TPanel
Left = 0
Top = 136
Width = 434
Height = 238
Align = alClient
Caption = 'Panel2'
TabOrder = 1
ExplicitLeft = 16
ExplicitTop = 168
ExplicitWidth = 369
ExplicitHeight = 145
end
end
Działa świetnie :-) Z dodatkiem podwojenia ograniczeń wysokości formularza, więc górny kontrolek również pokazuje. –