DropFiles

ファイルをエクスプローラからドロップするようなアプリケーションのためのコード。

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Controls, Forms, ShellApi;

type
  TForm1 = class(TForm)
  private
    procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;
  protected
    procedure CreateWnd; override;
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

{ TForm1 }

procedure TForm1.CreateWnd;
begin
  inherited CreateWnd;
  DragAcceptFiles(Handle, True);
end;

procedure TForm1.WMDropFiles(var Msg: TWMDropFiles);
var
  I, Count: Cardinal;
  FileName: TFileName;
begin
  Count := DragQueryFile(Msg.Drop, $FFFFFFFF, nil, 0);
  for I := 0 to Count - 1 do
  begin
    SetLength(FileName, MAX_PATH + 1);
    DragQueryFile(Msg.Drop, I, PChar(FileName), MAX_PATH);
    SetLength(FileName, StrLen(PChar(FileName)));
    //各ファイル毎の処理をここに書く
  end;
  DragFinish(Msg.Drop);
end;

end.

Return index page