На дня[ в одном из проектов мне потребовалось реализовать перетаскивание компонента TImage при помощи мышки. Оказалось, что это не так сложно....
Для начала объявим три гло,альные пtременные.
{codecitatioначалаn}
PosX, PosY: Integer;
move: Boolean;
{/codecitation}
По клику левой кнопкой мыши на TImage сохраним координаты объекта, переведем переменную move в значение true (Изображение можно двигать).
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// проверяем нажата ли левая кнопка мыши
if Button <> mbLeft then
move := false
else
begin
move := true;
PosX := X; // запоминаем координату x
PosY := Y; // запоминаем координату y
end;
end;
Двигая мышью - двигаем изображение
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if move then
begin
(Sender as TImage).SetBounds((Sender as TImage).Left + X - PosX,
(Sender as TImage).Top + Y - PosY, (Sender as TImage).Width,
(Sender as TImage).height);
end;
end;
Отпускаем кнопку мыши
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
move := false;
end;
Добавить комментарий