Ruchomy panel boczny

0

Witam!

Przy pomocy jakiego komponentu i mniej wiecej przy uzyciu jakich funkcji zrobic panel boczny w aplikacji... Np. taki ktorego tylko kawałek jest widoczny z ikonką strzałki a po najechaniu myszą bądź naciśnieciu strzałki wysuwa się a pózniej chowa (atomatycznie bądź też po ponownym naciśnięciu ikonki).... Mniej więcej zarys problemu podalem.... Jak to zrobić???

P.S. Dobrze by było aby ten wjeżdżający panel nie zakrywał formy... tzn. przesuwał wszystkie obiekty....

0

coś jak w firefoxie ? szukałem kiedyś czegoś gotowego ale bez skutku. zobacz do JEDI tam jest jvRollOut, przycisk jest a nad autohidem trzeba by pomyśleć...modyfikuj ten komponent dodając obsługę zdarzeń onmouseenter i onmouseleave. przy enter włączasz timer. przy leave wyłączasz. w ontimer po ustaleniu swojego interwału dajesz

JvRollOut1.Collapsed:=not JvRollOut1.Collapsed;
Timer1.Enabled:=not Timer1.Enabled;

całość procesu automatyzujesz w ten sposób że na formie dasz dwa panele: ten który się ma chować i drugi, roboczy (np po lewej, i prawej). pierwszemu ustawiasz align na alLeft, a drugiemu na alClient. co zrobisz z przemieszczającymi się komponentami na panelu z prawej is up to you :)

0

ten magiczny komponent to TForm , pomysl a zrobisz

0

Ja bym to zrobił tak.

1. zarządzanie położeniem elementów na formie
Stworzyłbym komponent dziedziczący po TPanel i ustawił Align na alLeft. Dzięki temu na formie można zrobić układ: Panel zwijany po lewej + zwykły panel z całą zawartością ustawiony na alClient. W ten sposób zmiana rozmiarów rozwijanego panelu automatycznie przesuwa wszystko w prawo.

2. rozwijanie po najechaniu myszką
Przechwyciłbym zdarzenia CM_MOUSEENTER i CM_MOUSELEAVE. W pierwszym zdarzeniu rozwijałbym panel, a w drugim zwijał. Jak zwijać/rozwijać Panel? Po prostu zmieniając właściwość Width. (powiedzmy, że zwinięty panel ma Width=16, a rozwinięty 160).

3. animowanie rozwijania
Do płynnego zmieniania Width użyłbym timera multimedialnego. Zobacz opis funkcji timeSetEvent i timeKillEvent .

  1. Kod źródłowy sobie napisałem dla pewności, ale w Borland C++ Builderze, więc raczej cię nie zadowoli.
0

Raczej mnie zadowoli bo z C++ Buildera na Delphi przesiadłem się jakiś rok temu ;) Więc jeśli możesz... [email protected]. Zgóry dzięki i pozdrawiam!

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