Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 10 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Перетаскивать файлы в свою программу - WM_DROPFILES

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

  • Подключаем модуль ShellAPI в области uses
  • По созданию окна [событие OnCreate] пишем такой код:

 DragAcceptFiles(Handle, true);
 

  • Когда вы перетаскиваете файл на своё приложение и отпускаете кнопку мыши, Windows посылает этому окну сообщение wm_DropFiles. Сообщение сопровождается именем файла. Обработчик этого сообщения нужно включить в раздел protected класса формы. Вставьте следующий код:

 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));
   Memo1.Lines.LoadFromFile(FileName);
   DragFinish(THandle(Msg.WParam));
 end;
 

или так:


 procedure TForm1.WMDROPFILES(var Msg: TMessage);
 var
   i, amount, size: integer;
   Filename: PChar;
 begin
   inherited;
   Amount := DragQueryFile(Msg.WParam, $FFFFFFFF, Filename, 255);
   for i := 0 to (Amount - 1) do
   begin
     size := DragQueryFile(Msg.WParam, i, nil, 0) + 1;
     Filename := StrAlloc(size);
     DragQueryFile(Msg.WParam, i, Filename, size);
     listbox1.items.add(StrPas(Filename));
     StrDispose(Filename);
   end;
   DragFinish(Msg.WParam);
 end;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS