Исходники
Статьи
Языки программирования
.NET Delphi Visual C++ Borland C++ Builder C/С++ и C# Базы Данных MySQL MSSQL Oracle PostgreSQL Interbase VisualFoxPro Веб-Мастеру PHP HTML Perl Java JavaScript Протоколы AJAX Технология Ajax Освоение Ajax Сети Беспроводные сети Локальные сети Сети хранения данных TCP/IP xDSL ATM Операционные системы Windows Linux Wap Книги и учебники
Скрипты
Магазин программиста
|
Использование мыши при работе с файлами (Drag & Drop)Большинство программ, преднозначенных для работы с текстом, предоставляют пользователю возможность перетаскивать имена файлов из "Проводника" (или других программ) в Memo или другой компонент, содержащийся в приложении. о умолчанию Delphi не позволяет перемещать файлы с помощью мыши, но, приложив небольшие усилия, такую возможность можно реализовать. Первое, что вы должны сделать, - сообщить системе Windows о том, что ваша программа готова обрабатывать файлы, перемещенные из другого приложения с помощью мыши. Для этого достаточно включить в обработчик события OnCreate формы следующее выражение: DragAcceptFiles(Handle,True); Кроме того вы должны указать модель ShellAPI в директиве uses. Для любого окна, в котором была вызвана процедура DragAcceptFiles, справедливо следующее. Когда вы перетаскиваете имя файла на ваше приложение и отпускаете кнопку мыши, Windows посылает этому окну сообщение wm_DropFiles. Сооьщение сопровождается именем файла. Обработчик этого сообщения нужно включитьв защищенный раздел класса формы. например, в объявлении класса формы между ключвыми словами private и public добавьте следующие строки: protected procedure WMDropFiles (var Msg: TMessage); message wm_DropFiles; И наконец-то пример самой процедуры, при помощи которой будет происходить обработка файла: protected procedure WMDropFiles (var Msg: TMessage); message wm_DropFiles;И наконец-то пример самой процедуры, при помощи которой будет происходить обработка файла: procedure TForm1.WMDropFiles(var Msg: TMessage); Var Filename: array[0..256] of char; begin DragQueryFile(THandle(Msg.WParam),0,Filename,SizeOf(Filename)); // Теперь в переменной Filename будет находиться путь // к перетаскиваемому файлу. Далее вы можете выполнять с этим файлом, зная // его путь, все что угодно. //Например: Загрузить его в Memo Memo1.lines.loadfromfile(Filename); //Сообщаем об окончании претаскивания DragFinish(THandle(Msg.WParam)); end; |
Форум Программиста
Новости Обзоры Магазин Программиста Каталог ссылок Поиск Добавить файл Обратная связь Рейтинги
|