Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

DragDrop путаница с сообщениями

8.7K
31 марта 2006 года
Rubicon
55 / / 28.10.2005
Пишу свой компанент (потомок CustomLabel), соответственно переписал все необходимые обработчики событий. Загвоздка только в Drag-ах(...Over, ...Drop --- без разницы)...
Дело в том, что экземпляров этого компатента в проге достаточно много. И при перетаскивании их дкуг к/через другу (почти все Drag-семейство) наблюдается такая вещь: Допусти были созданы два экземпляря (объекта) 1й и 2й (в таком порядке).
При перетаскивании объекта самого по себе (DragOver-обработчик объекта) все работает нормально, когда же "наезжаешь" 1м объектом на 2й, то срабатывает обработчик от лица только 2го объекта --- Sender==2й объект, Source==1й. Если же 2йм объектом наехать на 1й, то опять таки срабатывает 2й объект (Sender==Source). Однако сами по себе оба объекта "тоскаются" исправно.
Таким образом я не могу точно установить, какой объект перетаскивается на какой...
О причинах я примерно догадываюсь: обработчик события --- это определенный метод определеного класса, а методы классов не "плодятся" вместе с объектами (у каждого из них есть указатель на один и тотже адрес кода функции), то есть для обработки события оба объекта вызывают одну и ту же функцию ... Не силен во всем этом, но такое ощущение, что параметры фукнции-обработчика сообщения перезаписываются последним пришедшим сообщением, поэтому реагирует лишь объект, который был создан позже (соответственно, последним записал свои параметры для передачи функции-обработчику).
Подскажите, пожалуйста, как с этим бороться??? Конечно, есть возможность достич нужного результата и другими способами (без перетаскивания), но хочется найти человеческое решение проблемы X)-
Заранее извиняюсь, если наплел чушь, но никаких других объяснений происходящему я не нашел...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог