PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic WEB разработка *NIX CouchDB Hack Python
Главная Статьи Delphi Использование мыши при работе с файлами (Drag&Drop)
Главная
 Главная  Контакты
 
Программинг
Статьи Книги ЧаВО
 
xBOOKi
Fresh Books Операционки Сети
 
Поиск
-------
 
Counters
Яндекс цитирования
Rambler's Top100
-------
 
CryptDisk.4h
Программа которая позволяет создать виртуальный шифрованный логический диск.

cryptdisk.4hack.com

-------
 
 

Использование мыши при работе с файлами (Drag&Drop)

По материалам сервера http://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;

И наконец-то пример самой процедуры, при помощи которой будет происходить обработка файла:

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; 


Свежее
Резервное копирование rsync-ом
DNS Amplification (DNS усиление)
Алгоритм Шинглов — поиск нечетких дубликатов текста
Metasploit Framework. Обзор
Использование CouchDB
-------



 
Copyright © 2003-2009   Frikazoid.
Rambler's Top100