Пример из Д. Осипова
Объявляем глобальные переменные
1 2 3 4 |
var Form2: TForm2; xOffset:single; yOffset:single; |
Фиксируем начальную точку
1 2 3 4 5 6 |
procedure TForm2.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin xoffset:=x; yoffset:=y; end; |
Перемещаем
1 2 3 4 5 6 7 8 9 10 11 12 13 |
procedure TForm2.Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin if (ssLeft in Shift) then with (sender as tcontrol) do begin button1.Position.X:=button1.Position.x+x-xoffset; button1.Position.y:=button1.Position.Y+Y-yoffset; end; end; |