![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| yogin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 23.12.2007 Репутация: нет Всего: нет |
Приветствую.
есть панель, на ней Image. рядом на форме лежит другая панель, между панелями пространство, может быть форма а может какой-нить компонент. необходимо: при нажатии мыши на Image начать отображение перетаскивания Image, чтобы картинка была под мышью, т.е. начала тащиться за мышью, а не оставалась на прежнем месте(как при использовании drag&drop). т.е. по ссути, Image должна находиться поверх всех компонентов и тащиться за мышью. А ещё точнее - изображение, которое было в Image должно тащиться под мышью и быть поверх всего в пределах формы. прийму любые советы и методы, не обязательно мучать Image. постоянно должно остаться одно - исходное состояние - это картинка в Image и панели, всё. буду очень рад ответам. Это сообщение отредактировал(а) yogin - 9.10.2009, 13:09 |
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 6 Всего: 27 |
Можно сделать так:
1. при нажатии на имэйдже мышкой, делать его невидимым. 2. В это же время создать форму без заголовка, на этой форме создать таймер и Image. 3. В Image новой формы скопировать спрятаный, а в обработчике таймера (например с частотой 10 мс) написать следование за курсором мышки. Ну устанавливать Left и Top форме. 4. А дальше - обратный порядок. То есть копирование с динамической формы в image панели-приёмника, удаление формы, очистка первого имэйджа, сделать видимым второй bv'ql; Надеюсь всё понятно описал |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
создать невидимую форму без заголовка размером с имагу, сделать ее парентом имаги, тащить форму за курсором во время движения, в момент отпускания узнать какой контрол под курсором и сделать этот контрол парентом для имаги, предварительно сделав временную форму невидимой.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| yogin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 23.12.2007 Репутация: нет Всего: нет |
идея не плохая, форму нужно делать MDI т.к. не хочется ещё одну форму в нижней панели... и ненадо никого делать парентами, нужные области отпускания картинки у меня просчитываются координатами на форме.
только вот не станет ли заминкой то, что форма на которой имага, уже MDIChield? Т.е. не перекроит ли эта форма маленькую форму? вообщем надо пробовать... так уже не погадать. |
|||
|
||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Это еще почему? Сколько окон у Delphi 7 ? А сколько кнопок на панели задач?
Хочешь просто рисовать изображение поверх формы? -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
| Bitter |
|
||||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 6 Всего: 27 |
Что это за новость такая? Если ты имеешь в виду TaskBar, то там отображаются ПРИЛОЖЕНИЯ, а не ФОРМЫ одного приложения.
я не понял как это для этого всегда можно указать форме свойсво FormStyle как fsStayOnTop |
||||
|
|||||
| yogin |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 23.12.2007 Репутация: нет Всего: нет |
ты о чём вообще?
сразу думал об этом варианте... как лучше релиализовать?(чтобы иметь ввиду)
а кто говорил про приложение типа application? у меня всё в dll. иди попробуй создай 2-е формы в длл и посмотри на TaskBar. Это сообщение отредактировал(а) yogin - 9.10.2009, 17:26 |
||||||
|
|||||||
| AntonN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 7 Всего: 18 |
я бы создал окно, и сделал бы его layered (смотри функцию updatelayeredwindow()), поместил выше всех окон |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |