Пятница, 27.06.2025
Королевство Delphi
Главное меню
Статьи
Наш опрос
Нашли свой исходник?
Всего ответов: 94
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Система » Разное

Использование мыши при работе с файлами (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;

Получить ссылку на материал

Категория: Разное | Добавил: Барон (09.12.2011)
Просмотров: 573 | Теги: Drag & Drop, мышь, DragAcceptFiles, ShellApi, Файл | Рейтинг: 0.0/0
[ Пожертвования для сайта ] [ Пожаловаться на материал ]

Если вам помог материал сайта кликните по оплаченной рекламе размещенной в центре

Поиск
Категории раздела
ActiveX [10]
CORBA и COM [16]
Kol и MCK [23]
WinAPI [28]
Компоненты [27]
Работа с Bluetooth [4]
Железо [8]
Текст [18]
Разное [98]
Королевство Delphi © 2010-2025
Яндекс цитирования