本文整理自网络,侵删。
Delphi实现文件拖放代码
注:程序实现的是程序中接受外部文件拖放,直接获取拖放文件的文件名,支持多文件
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, shellapi;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
procedure DropFiles(var Msg: TMessage); message WM_DropFILES;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle, True);
end;
procedure TForm1.DropFiles(var Msg: TMessage);
var i, Count: integer;
buffer: array[0..1024] of Char;
begin
inherited;
Count := DragQueryFile(Msg.WParam, $FFFFFFFF, nil, 256); // 第一次调用得到拖放文件的个数
for i := 0 to Count - 1 do
begin
buffer[0] := #0;
DragQueryFile(Msg.WParam, i, buffer, sizeof(buffer)); // 第二次调用得到文件名称
Memo1.Lines.Add(buffer);
end;
end;
end.
相关阅读 >>
Delphi windows 底下根据一个进程的名字杀死一个进程的代码
Delphi url protocol 让浏览器运行本地的exe程序
Delphi �c 如何将多个文件扩展名传递给tdirectory.getfiles?
Delphi之tclientsocket和tserversocket使用tcp keepalive心跳机制实现“断网”、"断电"检测
更多相关阅读请进入《Delphi》频道 >>