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

Перетаскивание файлов

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

Вы должны связать интерфейс с модулем Windows Shell API, чтобы дать Windows знать, что опущенные файлы на Вашем приложении (это может быть сделано в главной форме, создают событие), и затем Вы должны ответить на перетащенные события, создавая обработчик события.

Далее - пример формы Delphi, которая принимает опущенные файлы и добавляет имена файлов в компонент Memo:


unit Unit1; 

interface 

uses 
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 
   Dialogs, StdCtrls; 

type 
   TForm1 = class(TForm) 
     Memo1: TMemo; 
     procedure FormCreate(Sender: TObject); 
   private 
     procedure WMDROPFILES(var Message: TWMDROPFILES); 
       message WM_DROPFILES; 
     { Private declarations } 
   public 
     { Public declarations } 
   end; 

var 
   Form1: TForm1; 

implementation 

{$R *.DFM} 

uses ShellApi; 

procedure TForm1.FormCreate(Sender: TObject); 
begin 
{Пусть Windows знает, что мы принимаем файлы} 
   DragAcceptFiles(Form1.Handle, True); 
end; 

procedure TForm1.WMDROPFILES(var Message: TWMDROPFILES); 
var 
   NumFiles : longint; 
   i : longint; 
   buffer : array[0..255] of char; 
begin 
{Сколько файлов опущено} 
   NumFiles := DragQueryFile(Message.Drop, 
                             -1, 
                             nil, 
                             0); 
{Accept the dropped files} 
   for i := 0 to (NumFiles - 1) do begin 
     DragQueryFile(Message.Drop, 
                   i, 
                   @buffer, 
                   sizeof(buffer)); 
     Form1.Memo1.Lines.Add(buffer); 
   end; 
end; 

end. 

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


 

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


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