|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.04.2008, 12:25 | #1 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Перемещение компонентов
Добрый день.
У меня на форме динамически создается какое-то количество панелей. Эти панели можно перемещать мышкой. Вопрос: как при MouseMove узнать, что перемещаемая панель находится в зоне любой другой панели (над ней, или под ней)?. p.s. Можно, конечно, запомнить позиции всех панелей и при перемещении проверять не попала ли перемещаемая панель в зону любой другой, но это несерьезно. Панелей могут быть сотни.... (это все нужно для раскладки мебельных заготовок на листах ДСП). |
10.04.2008, 12:33 | #2 |
Форумчанин
Регистрация: 29.12.2007
Сообщений: 137
|
Почему несерьезно? Занесите все панели в некий список, чтобы их все можно было перечислять в цикле, а при перемещении - делайте IntersectRect (определяет прямоугольник пересечения) своей ClientRect с ClientRect всех остальных панелей. Если хотя бы один результирующий прямоугольник не пустой - панели накладываются друг на друга.
А вообще, использовать для этой цели панели - на мой взгляд, топорно. Я как раз только что закончил статью на тему "проектирование контейнеров визуальных объектов" - если интересно - исходники статьи с примерами прилагаются. Последний раз редактировалось Stilet; 10.04.2008 в 12:52. |
10.04.2008, 13:33 | #3 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Ins, спасибо.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
перемещение формы | Черничный | Общие вопросы Delphi | 11 | 10.12.2009 11:06 |
Перемещение картинки на JS. | tunyash | JavaScript, Ajax | 2 | 27.03.2009 20:41 |
Перемещение кнопки? | &RiU | Общие вопросы Delphi | 1 | 28.05.2008 18:13 |
Автоматическое перемещение | Kirik | JavaScript, Ajax | 4 | 16.11.2007 17:42 |
Перемещение файлов | Nasya | Microsoft Office Excel | 2 | 13.10.2007 20:37 |