Перемещение контролов мышкой во время выполнения приложения?
Для этого необходимо перехватить событие OnMouseDown, запомнив координаты x и y и захватить мышку. После этого можно будет отслеживать движение мышки при помощи события OnMouseMove, перемещая контрол пока срабатывает событие OnMouseUp. Затем надо поместить контрол на своё окончательное место и снять захват мышки.
Следующий пример показывает как мышкой двигать компонент TButton по форме.
Статья Перемещение контролов мышкой во время выполнения приложения? раздела Синтаксис Drag and Drop может быть полезна для разработчиков на Delphi и FreePascal.
Комментарии и вопросы
:: 2016-10-29 20:38:58 :: re:Перемещение контролов мышкой во время выполнения приложения?
Ого как всё сложно оказывается, а я когда то родил для себя такой вариант, что аш стыдно сейчас за себя стало:
var MouseX,MouseY:integer;
procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if[ssLeft]=Shift then
begin
form1.Edit1.Left:=form1.Edit1.Left+X-MouseX;
form1.Edit1.Top:=form1.Edit1.Top+Y-MouseY
end
else
begin
MouseX:=X;
MouseY:=Y
end
end;
Наверное мой вариант слишком примитивный, но всё равно, может для кого и пригодится...
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.