Skocz do zawartości

[Delphi] Przyciąganie formularzy


Nvm

Polecane posty

Hail. Chciałbym zrobić efekt przyciągania forem, podobny do tego w Winampie. Chodzi mi o takie coś, że mam kilka formularzy i gdy któryś jest blisko drugie przyciągają się... Coś takiego ja magnes... Ciężko mi to wytłumaczyć :/ Pytanie jest takie: czy istnieje juz do tego gotowa funkcja czy sam będę zmuszony ją sobie napisać?

Link do komentarza
Udostępnij na innych stronach

  • 3 weeks later...

Byłem nad morzem a potem mi z głowy wyleciało i temat się trochę zakurzył. Ale do rzeczy.

 

A w czym problem sprawdzać pozycję przeciąganego okna względem innych form i jeśli są blisko siebie to ustawić pozycję odpowiednio. Sprawa jest bardzo prosta.

 

Tak, to oczywiste ale czy jest jakiś event, który reaguje na poruszanie formularzem? Żaden on mouse down (czy inne) nie działa bo te zdarzenia reagują na kliknięcia (bądź co innego) w obrębie formy, nie zaś na belce tytułowej. Gdy zaś poruszamy formularzem klikamy na tą właśnie belkę. Tak więc najbardziej odpowiednim zdarzeniem było by takie, które reaguje na poruszanie formą. Można to oczywiście również zrobić timerem ale takie rozwiązanie jest bardzo nie wydajne i strasznie zamula komputer.

Link do komentarza
Udostępnij na innych stronach

Ok, działa. Dzięki.

 

-Edit-

 

To co dał KKKas działa, ale mój kod coś nie działa. Formularz jest przyciągnięty, jednak po chwili odskakuje z powrotem. Mój kod, który powoduje przyciąganie:

 

 if Form2.Left = Form1.Left + Form1.Width + 10 then
   be[LYHLKY
LKYYFV'f&VĆ'27Ś>gVCŚ6bgVC7v6ą((

Link do komentarza
Udostępnij na innych stronach

Dałeś 'inherited;' na początku procedury obsługującej WM_ ?

 

EDIT: Poza tym, nie zmieniaj bezpośrednio .Left formy, tylko wartości w strukturze przekazywanej w parametrze (var Msg: TWMWINDOWPOSCHANGING), np:

 

Msg.WindowPos^.x := Form1.Left + Form1.Width

҉

Link do komentarza
Udostępnij na innych stronach

  • 5 years later...

Nie no za przeproszeniem bez jaj. Znów odgrzewasz jakiegoś zapomnianego kotleta. I jeszcze piszesz tak jakby ten artykuł i strona nie była twoja. Jak chcesz komuś pomóc na forum to napisz w aktualnych wątkach a nie strzelasz takie g....

 

Tam z tego co wiem, jest rzeczowo wytłumaczone jak zaostosować przyciąganie okna aplikacji. Mnie się przydało.
Twój własny artykuł ci się przydał? No bardzo bardzo dziwne. Nigdy bym się nie domyślił, że to co samemu zrobie mi się przyda.

 

Nie mam takiej władzy ale pousuwałbym ci te posty bo są jeszcze bardziej wkurzające niż pytania początkujących czemu ich "Random" nie działa (bo to jeszcze jestem w stanie zrozumieć, że ktoś googla nie przejrzał). I nie mów, że piszesz dla potomnych bo ktoś może w przyszłości szukać takiego rozwiązania bo to co jest w artykule to...nic.

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

Nie no za przeproszeniem bez jaj. Znów odgrzewasz jakiegoś zapomnianego kotleta. I jeszcze piszesz tak jakby ten artykuł i strona nie była twoja. Jak chcesz komuś pomóc na forum to napisz w aktualnych wątkach a nie strzelasz takie g....

 

Twój własny artykuł ci się przydał? No bardzo bardzo dziwne. Nigdy bym się nie domyślił, że to co samemu zrobie mi się przyda.

 

Nie mam takiej władzy ale pousuwałbym ci te posty bo są jeszcze bardziej wkurzające niż pytania początkujących czemu ich "Random" nie działa (bo to jeszcze jestem w stanie zrozumieć, że ktoś googla nie przejrzał). I nie mów, że piszesz dla potomnych bo ktoś może w przyszłości szukać takiego rozwiązania bo to co jest w artykule to...nic.

Znowu wywołany do tablicy i trzeba się tłumaczyć. "Mnie się przydało. " - nigdy nie ukrywałem, że ja to pisałem. Faktycznie mnie się przydało, co można zobaczyć w jednej z aplikacji którą udostępniłem dla innych, więc na prawdę MI SIĘ PRZYDAŁO. W sumie w dwóch których udostępniłem, zresztą wszystkie aplikacje piszę teraz ze wzorców, które zawierają ten fragment kodu. W gwoli wyjaśnienia: pisałem różne aplikacje i spotykałem się z różnymi problemami i szukałem rozwiązań na forach zapisując sobie linki. Znalazłem w końcu trochę czasu na to by podzielić się z innymi kodem i programami, które uważam, że mogą się komuś przydać. Odkopuje więc zakładki, które miałem zapisane i zamieszczam linki żeby ktoś komu się to przyda z tego skorzystał. Tobie się może nie przyda, 100 klolejnym osobom także się nie przyda, ale znajdzie się ktoś kto sięgnie do mojego rozwiązania. I dla takiej osoby ten wpis powstał. Nie przeglądałem wszystkich postów które zamieszczasz, ale widać że się nudzisz. To może napisz trochę linijek kodu, jakiś prosty program, co kolwiek i udostępnij go innym. Wole na to poświęcać swój czas niż na szukaniu na forum każdego nowego artykułu i nie wnoszenie żadnej linijki kodu do niego. Jak ci to bardzo przeszkadza to uzbroj się w cierpliwość, bo zamierzam (w miare wolnego czasu) na pisanie kolejnych artykułów i zamieszczanie ich na tym forum. Chce pokazać moje wizualne komponenty które napisałem (myślę że przydadzą się tym korzystających z Delphi których nie stać na ładne gradientowe buttony itp. oraz nie posiadają najnowszego środowiska Delphi). Wykorzystanie modułu nie pisanego przezemnie, ale zmodyfikowanego aby można było łatwo korzystać z wątków (wiem że napisałeś coś tam o wątkach ale tamto to naprawdę NIC). Dodaj jakieś pliki źródłowe, przykładowe programy.

 

Jeżeli cię to bardzo wkurza to nie mój problem, tylko twój bo to ciebie wkurza. Ja mnie wkurza, że ktoś pali to wychodzę. Nie musisz śledzić moich postów i się wkurzać, chyba że lubisz tak, to z miłą chęcią powkurzamy się razem.

 

Pozdrawiam i życzę samych sukcesów w programowaniu

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...