Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Использование мыши при работе с файлами.

eManual - электронная документация
ПрограммыЖелезоДрайверыХостингЭнциклопедия рекламы

Использование мыши при работе с файлами (или, как перетаскивать файлы в свою программу)
www.delphi.agava.ru

Большинство программ, преднозначенных для работы с текстом, предоставляют пользователю возможность перетаскивать имена файлов из "Проводника" (или других программ) в Memo или другой компонент, содержащийся в приложении. о умолчанию Delphi не позволяет перемещать файлы с помощью мыши, но, приложив небольшие усилия, такую возможность можно реализовать.

Первое, что вы должны сделать, - сообщить системе Windows о том, что ваша программа готова обрабатывать файлы, перемещенные из другого приложения с помощью мыши. Для этого достаточно включить в обработчик события OnCreate формы следующее выражение:

DragAcceptFiles(Handle,True);

Кроме того вы должны указать модель ShellAPI в директиве uses.

 

Для любого окна, в котором была вызвана процедура DragAcceptFiles, справедливо следующее. Когда вы перетаскиваете имя файла на ваше приложение и отпускаете кнопку мыши, Windows посылает этому окну сообщение wm_DropFiles. Сооьщение сопровождается именем файла. Обработчик этого сообщения нужно включитьв защищенный раздел класса формы. например, в объявлении класса формы между ключвыми словами private и public добавьте следующие строки:

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;


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте