ファイルをエクスプローラからドロップするようなアプリケーションのためのコード。
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.