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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2009, 01:58   #1
ugagaga
 
Регистрация: 12.12.2009
Сообщений: 2
По умолчанию Delphi. Перетягивание изображения

Здравствуйте. Как сделать (в delphi) что бы можно было перетягивать изображение по форме в реальном времени. Например: Я нажимаю на картинку. Не отпуская мыши перетягиваю в нужную точку(картинка следует за курсором), отпускаю кнопку мыши, картинка остается в том месте где была отжата клавиша. Все скрипты что нашел когда перетягиваешь курсор картинка не перемещается, а сразу появляется в месте где была отжата кнопка мыши!

Зарание спасибо)
ugagaga вне форума Ответить с цитированием
Старый 12.12.2009, 02:20   #2
like_cloud
Пользователь
 
Аватар для like_cloud
 
Регистрация: 09.12.2009
Сообщений: 29
По умолчанию

на картинке в OnMouseDown ставим процедуру:

Код:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
begin
    MouseX:=X;
    MouseY:=Y;
end;
в OnMouseMove:

Код:
procedure TForm1.MouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
begin
    if HiWord(GetAsyncKeyState(VK_LBUTTON)) > 0 then
    begin  
      Image1.Left:=Image1.Left+X-MouseX;
      Image1.Top:=Image1.Top+Y-MouseY;
    end;
end;
вместо Image1 - ставь то,что тебе надо двигать.
в переменных обьялвляем MouseX, MouseY: integer;
like_cloud вне форума Ответить с цитированием
Старый 12.12.2009, 02:32   #3
ugagaga
 
Регистрация: 12.12.2009
Сообщений: 2
По умолчанию

Цитата:
Сообщение от like_cloud Посмотреть сообщение
на картинке в OnMouseDown ставим процедуру:

Код:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
begin
    MouseX:=X;
    MouseY:=Y;
end;
в OnMouseMove:

Код:
procedure TForm1.MouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
begin
    if HiWord(GetAsyncKeyState(VK_LBUTTON)) > 0 then
    begin  
      Image1.Left:=Image1.Left+X-MouseX;
      Image1.Top:=Image1.Top+Y-MouseY;
    end;
end;
вместо Image1 - ставь то,что тебе надо двигать.
в переменных обьялвляем MouseX, MouseY: integer;
Огромное Спасибо!
ugagaga вне форума Ответить с цитированием
Старый 12.12.2009, 02:40   #4
like_cloud
Пользователь
 
Аватар для like_cloud
 
Регистрация: 09.12.2009
Сообщений: 29
По умолчанию

Цитата:
Сообщение от ugagaga Посмотреть сообщение
Огромное Спасибо!
не за что сам недавно нашел на етом форуме

у меня есть вопрос в продолжении темы:
а если на форме куча разных компонентов и они закрывают собой форму. Как тогда организовать ее передвижение на кнопку мыши? прописывать в каждый компонент методы обработки мушки - ето может быть очень долго, в зависимости от кол-ва компонентов.

Последний раз редактировалось like_cloud; 12.12.2009 в 02:45.
like_cloud вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите, как сделать что бы перетягивание форм происходило одновременно! •ScReam•™ Помощь студентам 1 19.06.2009 00:45
Чтение изображения из базы данных, Вместо изображения - "System.Byte[]" ruelCrow Общие вопросы .NET 3 10.07.2008 23:29
Изображения на изображении :) nikleb JavaScript, Ajax 6 24.11.2007 01:34
Изображения в БД alikon1 БД в Delphi 3 08.10.2007 13:13