Jak przesuwać formę jeżeli BorderStyle bsNone
Adam Boduch
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;
@bzz: Tak jest łatwiej ale jeżeli na formie jest obrazek np. tło formy to już ten pomysł nie jest skuteczny.
Lepiej dać tak:
W sekcji PRIVATE:
i uzupełniamy:
fajne. przydaje sie do robienia efektownych graficznie aplikacji
Tak jest latwiej
wkleic w OnMouseDown formy
if Button = mbLeft then
begin
ReleaseCapture;
SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
pozdrawiam