• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Как Перетащить Timage Мышкой

  • Автор темы Автор темы Sascha
  • Дата начала Дата начала

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,551
Баллы
155
На дня[ в одном из проектов мне потребовалось реализовать перетаскивание компонента TImage при помощи мышки. Оказалось, что это не так сложно....

Для начала объявим три глобальные переменные.

{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;
 
Вверх Снизу