[DELPHI] Przesuwanie drugiej formy przesuwając pierwsz

0

Witajcie

Temat troche zawiły ale chodzi mi o coś takiego:

mam dwie Formy widoczne po uruchomieniu.
I teraz chce zrobić tak żeby poruszając pierwszą formą, ruszała się druga pozostając w tych samych odstępach od pierwszej.
Tyle że po kliknięciu na pasek pierwszej formy nie na Forme (czyli tam gdzie jest Caption Formy i przyciski do zminimalizowania, zamknięcia...).
Wiem że cos trzeba wpisac w OnMouseUp, OnMouseDown i OnMouseMove. Tylko co?????

THX

0

Luki napisał:
Witajcie
&gt
&gtTemat troche zawiły ale chodzi mi o coś takiego:
&gt
&gtmam dwie Formy widoczne po uruchomieniu.
&gtI teraz chce zrobić tak żeby poruszając pierwszą formą, ruszała się druga pozostając w tych samych odstępach od pierwszej.
&gtTyle że po kliknięciu na pasek pierwszej formy nie na Forme (czyli tam gdzie jest Caption Formy i przyciski do zminimalizowania, zamknięcia...).
&gtWiem że cos trzeba wpisac w OnMouseUp, OnMouseDown i OnMouseMove. Tylko co?????
&gt
&gtTHX
&gt

var
Fx,Fy: Integer;
ButtonDownX: Boolean = false;
{ GLOBALNE }

procedure TForm1.Gradient1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (Button = mbLeft) and (not ButtonDownX) then
ButtonDownX := true;

FX := X;
FY := Y;
end;

procedure TForm1.Gradient1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if ButtonDownX then
begin
Form1.Left := Form1.Left + X - FX;
Form1.Top := Form1.Top + Y - FY;
Form2.Left := Form1.Left + Form1.Width;
Form2.Top := Form1.Top;
end;
end;

procedure TForm1.Gradient1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ButtonDownX := False;
end;
--[ Delphi... i wszystko jasne ]

0

Dzięki za szybką odpowiedź ale niestety niedziała.

Wszystko jest OK nie ma żadnego błędu, ale poruszając obojętnie którą formą ta druga w ogóle się nierusza.

Może błąd tkwi w tym że mam DEELPHI 7??? Ale wątpie.

Jakieś inne propozycje???

0

Luki napisał:
Może błąd tkwi w tym że mam DEELPHI 7??? Ale wątpie.

Na pewno to nie wina D7. Może ktoś mi powie, co to jest Gradient1? Procedurki są bardzo ładne, ale nie są do niczego podciągnięte, więc jak to ma działać. Przy kompilacji nie pokaże się przy nich niebieska kuleczka z lewej strony.--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

Dryobates napisał:
Luki napisał:
&gtMoże błąd tkwi w tym że mam DEELPHI 7??? Ale wątpie.
&gt
&gtNa pewno to nie wina D7. Może ktoś mi powie, co to jest Gradient1? Procedurki są bardzo ładne, ale nie są do niczego podciągnięte, więc jak to ma działać. Przy kompilacji nie pokaże się przy nich niebieska kuleczka z lewej strony.
&gt

gradient1 to jest taki komponencik, bo ta procedurka jest wyciagnieta z mojego programiku i po prostu trzeba dodac tam zdarzenia formy lub jakiegos innego komponentu :)

Gdzie mozna znalezc Delphi7 Trial?--[ Delphi... i wszystko jasne ]

0

TheChoseN napisał:
gradient1 to jest taki komponencik, bo ta procedurka jest wyciagnieta z mojego programiku i po prostu trzeba dodac tam zdarzenia formy lub jakiegos innego komponentu :)

Teraz prawie wszystko gra. Jedyny szczegół to trzeba zamienić linijki:
Form2.Left := Form1.Left + Form1.Width;
Form2.Top := Form1.Top;
na
Form2.Left := Form2.Left + X - FX;
Form2.Top := Form2.Top + Y - FY;

Żeby zachowało taką samą odległość, a nie przyklejało się.--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

Dryobates to na razie mi tez niepomogło.
To chyba przez to że niemam tego komponentu : gradient1.
Moje pytanie to jaki to komponent???
Dokładną nazwe jak można prosić.
Bo na www.torry.net jest ich kilka i niewiem który to.

0

Luki napisał:
Dryobates to na razie mi tez niepomogło.
&gtTo chyba przez to że niemam tego komponentu : gradient1.
&gtMoje pytanie to jaki to komponent???
&gtDokładną nazwe jak można prosić.
&gtBo na www.torry.net jest ich kilka i niewiem który to.
&gt
&gt

jest na mojej stronie http://www.dplanet.boo.pl w dziale komponenty
na tej stronie chyba tez jest... (jest on bardzo przydatny) :)--[ Delphi... i wszystko jasne ]

0

A po co ci ten komponent? Wystarczy, że podepniesz kod pod znarzenia np. panala, czy nawet formy.---------------------------
Delphi 6

Pozdrówka

0

Z ciekawości sprawdziłem co z tymi prockami i ... mi wszystko dziala ;)
Mam D6

PS. Bez komponentu gradient ...
--..::.[ Retry, Reebot, Reinstal ... ].::..

0

Dobrze działa jak klikniesz na forme i przesuwasz, Ale ja mam na całej formie inne komponenty i zostaje mi poruszanie za pomoca paska.

0

To przesuń komponenty o kilkadziesiąt pixeli i dodaj na górze np. panel, który będzie robił za pasek tytułowy---------------------------
Delphi 6

Pozdrówka

0

Tyle to ja też wiem i tak będe musiał zrobić i tyle.
Dzięki wszytkim za pomoc.

0

sprobuj obsluzyc komunikat WM_MOVE albo WM_WINDOWPOSCHANGING albo WM_WINDOWPOSCHANGED :)---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ lks16@tenbit.pl ]=-

0

Dałem se już z tym spokój. Położyłem panel na TOP i w nim obsłużyłem te 3 zdarzenia dla Mouse.

THX everybody.

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