Карта сайтаСсылкиКонтакты

Как реализовать перетаскивание с Explorer

PDF Печать
Статьи

Как воздействовать на сообщение WM_DROPFILES Windows?


type 
   TForm1 = class(TForm) 
     Memo_AttachedFiles: TMemo; 
     procedure FormCreate(Sender: TObject); 
   private 
   public 
     procedure WMDROPFILES (
           var Msg: TMessage); message WM_DROPFILES; 
   end; 

{ ... }

uses 
   ShellAPI; 



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); 

     // Filemame содержит приложенный файл (ы) 
     Memo_AttachedFiles.Lines.Add(StrPas(Filename)); 

     StrDispose(Filename); 
   end; 
   DragFinish(Msg.WParam); 
end; 


procedure TForm1.FormCreate(Sender: TObject); 
begin 
   DragAcceptFiles(Form1.Handle, true); 
end; 

По материалам http://delphi.3000.com


 

Добавить комментарий


Защитный код
Обновить