Jak przesuwać oknem po ustawieniu BorderStyle na None?

1

Witam.

Chciałbym się dowiedzieć co robię nie tak. Otóż zależy mi na tym, by ogólnie wyłączyć pasek menu mojego programiku (borderstyle na none). Na górze umieszczam "panel" i ustawiam, żeby był na top. Oczywiście dodaję możliwość zamknięcia i minimalizacji programu (self.close, self.hide itp). Nie jestem jednak wstanie zmienić położenia tego programu.

procedure TForm1.Panel2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  MouseDownPt := Point(X,Y);
  MouseMovingWindow := true;
end;


procedure TForm1.Panel2MouseLeave(Sender: TObject);
begin
  MouseMovingWindow := false;
end;

procedure TForm1.Panel2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if MouseMovingWindow then
begin
  Self.Left := Self.Left + (X - MouseDownPt.X);
  Self.Top := Self.Top + (Y - MouseDownPt.Y);
end;
end;

procedure TForm1.Panel2MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  MouseMovingWindow := false;
  MouseDownPt := Point(X,Y);
end;

Niestety nie wiem czemu nie działa.

Proszę o pomoc.

1

Zrobione. Zapomniałem to w eventach poprzestawiać.

2

w OnMouseDown

if (Button = mbLeft) then
  begin
    ReleaseCapture;
    SendMessage(Okno.Handle, WM_NCLButtonDown, htCaption, 0 );
  end;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.