Перемещение контролов мышкой во время выполнения приложения?
Для этого необходимо перехватить событие OnMouseDown, запомнив координаты x и y и захватить мышку. После этого можно будет отслеживать движение мышки при помощи события OnMouseMove, перемещая контрол пока срабатывает событие OnMouseUp. Затем надо поместить контрол на своё окончательное место и снять захват мышки.
Следующий пример показывает как мышкой двигать компонент TButton по форме.
Перемещение контролов мышкой во время выполнения приложения достигается путём перехвата событий OnMouseDown, OnMouseMove и OnMouseUp, а также использования функций SetCapture, ReleaseCapture и отслеживания координат мышки.
Комментарии и вопросы
:: 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;
Наверное мой вариант слишком примитивный, но всё равно, может для кого и пригодится...
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.