Powiększanie formy splitterem

0

witajcie.

chciałbym, aby za pomocą poziomego splittera między dwoma panelami można było powiększyć formę, a zmniejszając formę przesuwał się również splitter, w obu przypadkach zachowując minimalną wielkość dolnego panelu 100px. wykorzystałem OnMoved splittera i OnResize formy i prawie działa. pomijając to, że samo rozwiązanie średnio mi się podoba (pewnie jest jakieś prostsze - jest?) to splitter powiększa formę tylko do pewnego momentu - przesuwa się tylko do miejsca, do którego mógłby się przesunąć gdyby forma się nie powiększyła. jak to obejść?

mój kod:

...
delta=Form1->Height-Panel1->Height-Panel2->Height;
...
//---------------------------------------------------------------------------
void __fastcall TForm1::Splitter1Moved(TObject *Sender)
{
if (Panel2->Height<100) Form1->Height=Splitter1->Top+delta+100;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
if (Panel2->Height<100) Panel1->Height=Form1->Height-delta-100;
}

exe: http://wyslijplik.pl/download.php?sid=NMthJLHM

używam Borland C++ Builder 6.

pozdrawiam

0

poradziłem sobie,
miałem Panel1->Align = alTop, Splitter->Align = alTop i Panel2->Align = alClient.
teraz jest Panel1->Align = alClient, Splitter->Align = alBottom i Panel2->Align = alBottom
i działa. wątek można zamknąć.

0

a jednak nie rozwiązuje to problemu. po prostu panele zachowują się teraz inaczej. w takiej konfiguracji też występuje takie ograniczenie ruchu splittera, tylko w "drugą stronę". a więc pytanie pozostaje - jak zneutralizować ograniczenie ruchu splittera "po formie"?

pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1