![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Drag&Drop файлов на форму. [D6, WinXP]
Yuri Btr © (2002-07-26 09:35:00)Прочитал статью на этом форуме "Примеры использования Drag and Drop для различных визуальных компонентов". Там описан пример перетаскивания файлов из проводника на форму (в любое место). И теперь у меня пара вопросов к мастерам:
Как можно реализовать добавление имён файлов именно в определённый компонент на форме, причём только если именно в этот компонент были брошены файлы.
И как соответственно запретить Drop на не предназначенных для этого компонентах. (Accept:=false не работает)
Я так понимаю надо юзать структуру Msg сообщения WM_DROPFILES.
Но в MSG не содержится никакой информации о handle приёмника?!
Набережных С. (2002-07-26 19:36:00) [1]
> MBo © (26.07.02 10:13)
Можно просто переустановить оконную процедуру.
Yuri Btr (2002-07-26 10:30:00) [2]to MBo
Спасибо, действительно задача не так проста. Но я не могу использовать в программе посторонние компоненты, я пытаюсь всё сделать руками, и нашёл такое совсем "простое" решение - я определяю приёмник по открытой странице TabSheet - благо что он у меня по одному приёмнику на каждой странице блокнота. Иначе бы пришлось определять компонент приёмник по позиции мыши во время Drag&Drop.
MBo (2002-07-26 10:13:00) [3]Для этого придется писать свой наследник компонента, который обрабатывает сообщение WM_DROPFILES, и регистрировать его с помощью DragAcceptFiles. Вариант - субклассирование контрола с подменой его WindowProc.
Если задача будет слишком сложна, рекомендую использовать
библиотеку Drag and Drop Component Suite
Anders Melander
(codecentral.borland.com или Torry.ru)