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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2012, 19:31   #1
Jleksern
Форумчанин
 
Аватар для Jleksern
 
Регистрация: 14.10.2011
Сообщений: 137
По умолчанию Перемещение программы

А как сделать так чтоб можно было зажать на какойто компонент (к примеру кнопку) и перетащить окно в другое место?!
Перетаскивать НЕ в программе, а саму программу.
Jleksern вне форума Ответить с цитированием
Старый 31.01.2012, 19:59   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Заводите глобальные переменные
Код:
Dragging: boolean;
OldX, OldY: integer;
Потом обрабатывайте событие MouseDown нужного компонента
пишите следующее
допустим для кнопки
Код:
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
     if Button = mbLeft then
     begin
          Dragging := true;
          OldX := X;
          OldY := Y;
     end;
end;
потом обрабатываете
MouseMove
Код:
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
     if Dragging then
     begin
         Form1.Left := Form1.Left - X - OldX;
         Form1.Top := Form1.Top - Y - OldY;
     end;
end;
Ну а в конце
MouseUp
Код:
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
     Dragging := false;
end;
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 31.01.2012, 20:40   #3
Jleksern
Форумчанин
 
Аватар для Jleksern
 
Регистрация: 14.10.2011
Сообщений: 137
По умолчанию

Блин, а это легче чем я себе представлял))) Спасибо)

хм... за ради интереса решил прямо сейчас попробовать этот код.

Но.. он убегает от курсора :D
А я интернируются так чтоб курсором зажать и перетянуть куда-то ))

Последний раз редактировалось Jleksern; 31.01.2012 в 20:59.
Jleksern вне форума Ответить с цитированием
Старый 01.02.2012, 10:33   #4
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Допустим Вам надо перетащить форму держа курсор мыши на компоненте labe1

Код:
procedure tform1.label1mousedown(sender: tobject; button: tmousebutton;
shift: tshiftstate; x, y: integer);
const sc_dragmove = $f012;
begin
releasecapture;
form1.perform(wm_syscommand, sc_dragmove, 0);
end;
www.x-program.narod.ru
FaTaL вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение в БД Михаил Юрьевич Общие вопросы Delphi 3 02.10.2011 01:14
Перемещение Image zih Общие вопросы Delphi 11 12.06.2011 20:22
перемещение формы CraZZy RabbIt Общие вопросы Delphi 1 16.03.2009 01:38
Перемещение компонентов _SERGEYX_ Общие вопросы Delphi 2 10.04.2008 13:33
Перемещение файлов Nasya Microsoft Office Excel 2 13.10.2007 20:37