API - aceitando arrasto de arquivos do Windows (drop)

Top  Previous  Next

// Aceitando arrasto de arquivos do Windows

 

Uses ShellApi;

 

type

  TForm1 = class(TForm)

    ListBox1: TListBox;

    Label1: TLabel;

    procedure FormCreate(Sender: TObject);

  private

    procedure WMDropFiles(var Msg : TWMDropFiles); message WM_DROPFILES;

  end;

 

var

  Form1: TForm1;

 

implementation

 

procedure TForm1.FormCreate(Sender: TObject);

begin

  DragAcceptFiles(Handle, True);

end;

 

procedure TForm1.WMDropFiles(var Msg: TWMDropFiles);

var

  i       : Integer;

  NumArqs : Integer;

  NomeArq : String;

begin

  SetLength(NomeArq,255);

  NumArqs := DragQueryFile(Msg.Drop,$FFFFFFFF,PChar(NomeArq),255);

  for i := 0 to NumArqs-1 do

  begin

    DragQueryFile(Msg.Drop,i,PChar(NomeArq),255);

    Listbox1.Items.Add(NomeArq);

  end;

end;