![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
***
Участник клуба
Регистрация: 30.07.2007
Сообщений: 1,162
|
![]()
Всем добрый вечер, нашёл бы в поиске (как обычно делаю), но не могу правильно сформулировать вопрос. По этому и такое кривое название темы (за что извиняюсь).
Имеется форма со свойством borderStyle:=bsNone. На ней image с фоном. Как сделать чтобы в любом месте формы (подрузамиваю, что там image на всю форму растянут) можно было нажать клавишой мыши и двигать формой так же как и если бы там был заголовок формы. Тут пример: ![]() Последний раз редактировалось dr.Chas; 10.02.2010 в 22:13. Причина: рисунок криво вставлялся |
![]() |
![]() |
![]() |
#2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Вариант 1.
a) Ставим хук (локальный) на сообщения вашего приложения. А именно WH_MOUSE b) Ловим соответствующие WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE. c) разумеется, при нажатии перевести в координаты для экрана (ClientToScreen) координаты (POINT) нажатия и движения мыши. d) При нажатии, ставить свою переменную (к примеру boolean = true) т.е. идентифицировать нажатие e) после нажатия вызывать SetCapture (т.е. ставим капчу на мышь) f) на WM_MOUSEMOVE проверяем нашу boolean переменную, если true, то высчитываем просто (X = current_x - down_x (относительно окна, а не экрана)) вроде так, ну для Y аналогично (если может и ошибся, сами додумаете) g) по WM_LBUTTONUP вызываем ReleaseCapture (освобождаем капчу мыши) Ну как то так ![]() p.s. а еще внизу страницы список похожих тем, стоило бы заглянуть туда сначала |
![]() |
![]() |
![]() |
#3 | ||
***
Участник клуба
Регистрация: 30.07.2007
Сообщений: 1,162
|
![]()
Спс, попробую.
Цитата:
![]() Цитата:
![]() Последний раз редактировалось mihali4; 10.02.2010 в 23:20. |
||
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
![]() Код:
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
![]()
В обработчике OnMouseDown вашего Image пишете такой код:
Код:
Прошу модератора удалить это сообщение. From Stilet: Не обязательно его удалять. Это не дубль а дополнительный вариант. Последний раз редактировалось Stilet; 11.02.2010 в 08:47. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ограниченное перетаскивание формы | Maxs | Общие вопросы Delphi | 1 | 24.10.2009 21:05 |
Перетаскивание формы | Nester | Общие вопросы Delphi | 2 | 24.07.2009 12:35 |
Перетаскивание формы при BorderStyle := bsNone | lexaltd | Общие вопросы Delphi | 3 | 25.03.2009 14:57 |
Перетаскивание формы. | IVANSour | Общие вопросы Delphi | 2 | 03.02.2009 22:06 |
Перетаскивание формы | s-force | Общие вопросы Delphi | 13 | 07.09.2007 15:38 |