Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2009, 18:57   #1
КатенокСПб
 
Регистрация: 26.07.2007
Сообщений: 5
По умолчанию Перемещение image

Прошу вашей помощи!
Честно пыталась найти решение проблемы, но так ничего не нашла.
Делаю программу, есть image. Как сделать, чтобы пользователь мог таскать его по экрану мышкой?
Понимаю, что необходимо использовать события onmousedown, onmousemove, и onmouseup, но ничего не получается, помогите пожалуйста!
Или дайте ссылку, если это уже обсуждалось.
КатенокСПб вне форума Ответить с цитированием
Старый 21.05.2009, 19:35   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

http://www.delphikingdom.com/asp/vie...?catalogid=342.
Статья большая, но решение этой проблемы можно найти в разделе "Движение - это жизнь".
Скандербег вне форума Ответить с цитированием
Старый 21.05.2009, 20:16   #3
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Можете ещё глянуть тут: http://mihandelphi.narod.ru/docs/view/move_image.htm
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 22.05.2009, 10:41   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Вот кратенько:
Код:
var    
  x0, y0: integer;
  move: boolean;
  rec: TRect; //это все глобальные переменные



procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 if button<>mbLeft then
    move:=false
  else
  begin
    move:=true;
    x0:=x;
    y0:=y;
    rec:=image1.BoundsRect; //запоминаем контур картинки
  end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if move then
  begin
    Form1.Canvas.DrawFocusRect(rec); //рисуем рамку
    with rec do
    begin
      left:=Left+x-x0;
      top:=Top+y-y0;
      right:=right+x-x0;
      bottom:=bottom+y-y0;
      x0:=x;
      y0:=y; // изменяем координаты
    end;
    Form1.Canvas.DrawFocusRect(rec); // рисуем рамку на новом месте
  end;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Form1.Canvas.DrawFocusRect(rec);
  with image1 do begin
    setbounds(rec.left+x-x0,rec.top+y-y0,width,height); //перемещаем картинку
    move:=false;
  end;
end;
_SERGEYX_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение обьекта! TRIO JavaScript, Ajax 1 22.12.2008 19:49
Перемещение данных Мария100684 Microsoft Office Access 6 26.09.2008 03:45
Автоматическое перемещение Kirik JavaScript, Ajax 4 16.11.2007 17:42
Перемещение окна мышью за Image Viteef Общие вопросы Delphi 2 03.05.2007 23:48