Danke, das funktioniert. Nur habe ich jetzt ein anderes Problem:
Delphi-Quellcode:
procedure TForm.PanelMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft
then
begin
FFormMoving := True;
FMoveStartPos := Point(X, Y);
Panel.Cursor := crSizeAll;
ReleaseCapture;
end;
end;
procedure TForm.PanelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if FFormMoving
then
SetWindowPos(
Handle, 0,
Left + (X - FMoveStartPos.X),
Top + (Y - FMoveStartPos.Y),
0, 0, SWP_NOSIZE
or SWP_NOZORDER);
end;
procedure TForm.PanelMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft
then
begin
FFormMoving := False;
Panel.Cursor := crCross;
ReleaseCapture;
end;
end;
Ich nutze diesen Code, um das Formular ausgehend von dem Panel zu verschieben. Mit ReleaseCapture bleibt das Formular "stecken", sobald ich die Maus ein bisschen schneller bewege.
Kennt jemand eine Lösung für beide Probleme?