Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перетаскивание image 
:(
    Опции темы
yogin
Дата 9.10.2009, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 23.12.2007

Репутация: нет
Всего: нет



Приветствую.
есть панель, на ней Image. рядом на форме лежит другая панель, между панелями пространство, может быть форма а может какой-нить компонент.
необходимо: при нажатии мыши на Image начать отображение перетаскивания Image, чтобы картинка была под мышью, т.е. начала тащиться за мышью, а не оставалась на прежнем месте(как при использовании drag&drop).
т.е. по ссути, Image должна находиться поверх всех компонентов и тащиться за мышью. А ещё точнее - изображение, которое было в Image должно тащиться под мышью и быть поверх всего в пределах формы.
прийму любые советы и методы, не обязательно мучать Image. постоянно должно остаться одно - исходное состояние - это картинка в Image и панели, всё.
буду очень рад ответам.

Это сообщение отредактировал(а) yogin - 9.10.2009, 13:09
PM MAIL   Вверх
Bitter
Дата 9.10.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 6
Всего: 27



Можно сделать так:
1. при нажатии на имэйдже мышкой, делать его невидимым.
2. В это же время создать форму без заголовка, на этой форме создать таймер и Image.
3. В Image новой формы скопировать спрятаный, а в обработчике таймера (например с частотой 10 мс) написать следование за курсором мышки. Ну устанавливать Left и Top форме.
4. А дальше - обратный порядок. То есть копирование с динамической формы в image панели-приёмника, удаление формы, очистка первого имэйджа, сделать видимым второй bv'ql;

Надеюсь всё понятно описал
PM MAIL ICQ Skype   Вверх
Alexeis
Дата 9.10.2009, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



создать невидимую форму без заголовка размером с имагу, сделать ее парентом имаги, тащить форму за курсором во время движения, в момент отпускания узнать какой контрол под курсором и сделать этот контрол парентом для имаги, предварительно сделав временную форму невидимой.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
yogin
Дата 9.10.2009, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 23.12.2007

Репутация: нет
Всего: нет



идея не плохая, форму нужно делать MDI т.к. не хочется ещё одну форму в нижней панели... и ненадо никого делать парентами, нужные области отпускания картинки у меня просчитываются координатами на форме.
только вот не станет ли заминкой то, что форма на которой имага, уже MDIChield? Т.е. не перекроит ли эта форма маленькую форму?
вообщем надо пробовать... так уже не погадать.
PM MAIL   Вверх
Alexeis
Дата 9.10.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(yogin @  9.10.2009,  13:45 Найти цитируемый пост)
форму нужно делать MDI т.к. не хочется ещё одну форму в нижней панели...

Это еще почему? Сколько окон у Delphi 7 ? А сколько кнопок на панели задач? 

Цитата(yogin @  9.10.2009,  13:45 Найти цитируемый пост)
и ненадо никого делать парентами, нужные области отпускания картинки у меня просчитываются координатами на форме.

  Хочешь просто рисовать изображение поверх формы? 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Bitter
Дата 9.10.2009, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 6
Всего: 27



Цитата(yogin @  9.10.2009,  14:45 Найти цитируемый пост)
форму нужно делать MDI т.к. не хочется ещё одну форму в нижней панели...

Что это за новость такая? Если ты имеешь в виду TaskBar, то там отображаются ПРИЛОЖЕНИЯ, а не ФОРМЫ одного приложения.

Цитата(yogin @  9.10.2009,  14:45 Найти цитируемый пост)
 и ненадо никого делать парентами, нужные области отпускания картинки у меня просчитываются координатами на форме

я не понял как это

Цитата(yogin @  9.10.2009,  14:45 Найти цитируемый пост)
Т.е. не перекроит ли эта форма маленькую форму?

для этого всегда можно указать форме свойсво FormStyle как fsStayOnTop

PM MAIL ICQ Skype   Вверх
yogin
Дата 9.10.2009, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 23.12.2007

Репутация: нет
Всего: нет



Цитата

Это еще почему? Сколько окон у Delphi 7 ? А сколько кнопок на панели задач? 

ты о чём вообще?
Цитата

Хочешь просто рисовать изображение поверх формы?

сразу думал об этом варианте... как лучше релиализовать?(чтобы иметь ввиду)
Цитата

Что это за новость такая? Если ты имеешь в виду TaskBar, то там отображаются ПРИЛОЖЕНИЯ, а не ФОРМЫ одного приложения.

а кто говорил про приложение типа application?
у меня всё в dll. иди попробуй создай 2-е формы в длл и посмотри на TaskBar.

Это сообщение отредактировал(а) yogin - 9.10.2009, 17:26
PM MAIL   Вверх
AntonN
Дата 9.10.2009, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 7
Всего: 18



Цитата


сразу думал об этом варианте... как лучше релиализовать?(чтобы иметь ввиду)

я бы создал окно, и сделал бы его layered (смотри функцию updatelayeredwindow()), поместил выше всех окон


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0743 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.