[Delphi] Przesuwanie formy !

0

Witam !

Czy moze mi ktos powiedziec w jaki sposob mozna przesuwac forme jesli Border Style jest bsNone ?

Wiem ze mozna jakos w dowolnym miejscu formy chwycic ja myszka i przesuwac. Ale jak [???]

Pozdrawiam

0

Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! Poczytaj FAQ! :-[ [krzyk] :-[ [krzyk]

0

Dlaczego ludzie nie czytaja FAQ ?? To jest tragiczne - i na co ktos sie stara ?? :(

0

Adam: wystarczy dodać do VAR 2 zmienne i troszkę kodu jeśli chcesz szersze wytłumaczenie to napisz [email protected] na pewno odpowiem.
oto kodzik:

VAR
pos:boolean;
p:TPoint;

kliknij na formę
teraz do procedurki np. formy w Object Inspector
OnMouseMove:

if pos = true then
begin
Left:=Left+(x-p.x);
Top:=Top+(y-p.y);
end;

OnMouseDown:

pos:=true;
p:=Point(x,y);

OnMouseUp:

pos:=false;

0

bez faka ani rusz

FAQ FAQ i FAQ

0

Sorry, z tym ze cos mi ten przyklad z FAQ nie dziala.
Ten sam w sumie podal Adam W. ale pojawia mi sie blad:
Undeclared Identefier: "X"
Undeclared Identefier: "Y"

Dlaczego ?

0

Musisz pierw zadeklarować dwie zmienne globanle:

var
MD : Boolean;
P : TPoint;
Teraz wygeneruj procedury: OnMouseDown, OnMouseMove, OnMouseUp. Procedury te powinny wyglądać tak:

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MD := True;
P := Point(X, Y);
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if MD then
begin
Left := Left + (X - P.X);
Top := Top + (Y - P.Y);
end;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MD := False;
end;

U mnie jakoś działa może wstawiasz do nieodpowiednich zdażeń te kodziki? Sprawdź czy dodajesz je do zdażeń formy :>

0

Wszystko jest dobrze wstawione i dalej bledy:
Undeclared Identefier: "X"
Undeclared Identefier: "Y" :-(

Moze pod D7 to nie dziala ? [???]

0

Musisz pierw zadeklarować dwie zmienne globanle:

var
MD : Boolean;
P : TPoint;
Teraz wygeneruj procedury: OnMouseDown, OnMouseMove, OnMouseUp. Procedury te powinny wyglądać tak:

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MD := True;
P := Point(X, Y);
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if MD then
begin
Left := Left + (X - P.X);
Top := Top + (Y - P.Y);
end;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MD := False;
end;

Ja mam D7 - działa

zamiast:
P := Point(X, Y);
może być:
P := Point(mouse.CursorPos.X-Form1.Left, mouse.CursorPos.Y-Form1.Top);

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