Вниз
Скачать: CL | DM;

Drag&Drop файлов на форму.   Найти похожие ветки 

← →
Yuri Btr ©   (2002-07-26 09:35) [0]

Прочитал статью на этом форуме "Примеры использования Drag and Drop для различных визуальных компонентов". Там описан пример перетаскивания файлов из проводника на форму (в любое место). И теперь у меня пара вопросов к мастерам:
Как можно реализовать добавление имён файлов именно в определённый компонент на форме, причём только если именно в этот компонент были брошены файлы.
И как соответственно запретить Drop на не предназначенных для этого компонентах. (Accept:=false не работает)

Я так понимаю надо юзать структуру Msg сообщения WM_DROPFILES.
Но в MSG не содержится никакой информации о handle приёмника?!


← →
MBo ©   (2002-07-26 10:13) [1]

Для этого придется писать свой наследник компонента, который обрабатывает сообщение WM_DROPFILES, и регистрировать его с помощью DragAcceptFiles. Вариант - субклассирование контрола с подменой его WindowProc.

Если задача будет слишком сложна, рекомендую использовать
библиотеку Drag and Drop Component Suite
Anders Melander
(codecentral.borland.com или Torry.ru)


← →
Yuri Btr ©   (2002-07-26 10:30) [2]

to MBo
Спасибо, действительно задача не так проста. Но я не могу использовать в программе посторонние компоненты, я пытаюсь всё сделать руками, и нашёл такое совсем "простое" решение - я определяю приёмник по открытой странице TabSheet - благо что он у меня по одному приёмнику на каждой странице блокнота. Иначе бы пришлось определять компонент приёмник по позиции мыши во время Drag&Drop.


← →
Набережных С.   (2002-07-26 19:36) [3]


> MBo © (26.07.02 10:13)

Можно просто переустановить оконную процедуру.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
14-24198
Юрий Зотов
2002-07-13 19:27
2002.08.08
Бесплатный цирк


14-24211
Igor_thief
2002-07-07 12:34
2002.08.08
Встраивание exe в exe


3-23863
P&$
2002-07-19 13:42
2002.08.08
ODAC - использование TOraQuery


1-24010
anod
2002-07-28 16:32
2002.08.08
TTrackBar


1-24090
c0pYc@t
2002-07-26 11:49
2002.08.08
Thread




   Наверх