| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > перетаскивание image |
| Автор: yogin 9.10.2009, 13:06 |
| Приветствую. есть панель, на ней Image. рядом на форме лежит другая панель, между панелями пространство, может быть форма а может какой-нить компонент. необходимо: при нажатии мыши на Image начать отображение перетаскивания Image, чтобы картинка была под мышью, т.е. начала тащиться за мышью, а не оставалась на прежнем месте(как при использовании drag&drop). т.е. по ссути, Image должна находиться поверх всех компонентов и тащиться за мышью. А ещё точнее - изображение, которое было в Image должно тащиться под мышью и быть поверх всего в пределах формы. прийму любые советы и методы, не обязательно мучать Image. постоянно должно остаться одно - исходное состояние - это картинка в Image и панели, всё. буду очень рад ответам. |
| Автор: Bitter 9.10.2009, 13:42 |
| Можно сделать так: 1. при нажатии на имэйдже мышкой, делать его невидимым. 2. В это же время создать форму без заголовка, на этой форме создать таймер и Image. 3. В Image новой формы скопировать спрятаный, а в обработчике таймера (например с частотой 10 мс) написать следование за курсором мышки. Ну устанавливать Left и Top форме. 4. А дальше - обратный порядок. То есть копирование с динамической формы в image панели-приёмника, удаление формы, очистка первого имэйджа, сделать видимым второй bv'ql; Надеюсь всё понятно описал |
| Автор: Alexeis 9.10.2009, 14:24 |
| создать невидимую форму без заголовка размером с имагу, сделать ее парентом имаги, тащить форму за курсором во время движения, в момент отпускания узнать какой контрол под курсором и сделать этот контрол парентом для имаги, предварительно сделав временную форму невидимой. |
| Автор: yogin 9.10.2009, 14:45 |
| идея не плохая, форму нужно делать MDI т.к. не хочется ещё одну форму в нижней панели... и ненадо никого делать парентами, нужные области отпускания картинки у меня просчитываются координатами на форме. только вот не станет ли заминкой то, что форма на которой имага, уже MDIChield? Т.е. не перекроит ли эта форма маленькую форму? вообщем надо пробовать... так уже не погадать. |
| Автор: Bitter 9.10.2009, 16:54 | ||||
Что это за новость такая? Если ты имеешь в виду TaskBar, то там отображаются ПРИЛОЖЕНИЯ, а не ФОРМЫ одного приложения.
я не понял как это для этого всегда можно указать форме свойсво FormStyle как fsStayOnTop |
| Автор: yogin 9.10.2009, 17:25 | ||||||
ты о чём вообще?
сразу думал об этом варианте... как лучше релиализовать?(чтобы иметь ввиду)
а кто говорил про приложение типа application? у меня всё в dll. иди попробуй создай 2-е формы в длл и посмотри на TaskBar. |
| Автор: AntonN 9.10.2009, 22:49 | ||
я бы создал окно, и сделал бы его layered (смотри функцию updatelayeredwindow()), поместил выше всех окон |