1.添加引用ShellAPI。
2.运行程序时初始化 接受外部拖放。
3.接收事件
代码如下:
2.运行程序时初始化 接受外部拖放。
3.接收事件
代码如下:
1
unit mainForm;
2
3
interface
4
5
uses
6
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7
Dialogs, StdCtrls, ComCtrls,StrUtils, WinSkinData, SkinCaption,ShellAPI;//添加ShellAPI引用
8
9
type
10
TForm1 = class(TForm)
11
Button1: TButton;
12
OpenDialog1: TOpenDialog;
13
procedure FormCreate(Sender: TObject);
14
procedure Button1Click(Sender: TObject);
15
private
16
{ Private declarations }
17
public
18
{ Public declarations }
19
procedure DropFiles(var Msg: TMessage); message WM_DROPFILES;
20
21
end;
22
23
var
24
Form1: TForm1;
25
26
implementation
27
28
{$R *.dfm}
29
30
{ TForm1 }
31
//显示文件路径
32
procedure TForm1.Button1Click(Sender: TObject);
33
begin
34
if OpenDialog1.Execute then
35
begin
36
ShowMessage('当前文件路径为:'+OpenDialog1.FileName);
37
end;
38
end;
39
//功能同上,显示文件路径
40
procedure TForm1.DropFiles(var Msg: TMessage);
41
var
42
buffer: array[0..1024] of Char;
43
begin
44
inherited;
45
buffer[0] := #0;
46
DragQueryFile(Msg.WParam, 0, buffer, sizeof(buffer)); //第一个文件
47
ShowMessage('当前文件路径为:'+buffer);
48
end;
49
//初始化,接受外部拖放
50
procedure TForm1.FormCreate(Sender: TObject);
51
begin
52
DragAcceptFiles(Handle,True);//第二个参数为False时,不启用文件拖放
53
end;
54
55
end.
unit mainForm;2

3
interface4

5
uses6
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,7
Dialogs, StdCtrls, ComCtrls,StrUtils, WinSkinData, SkinCaption,ShellAPI;//添加ShellAPI引用 8

9
type10
TForm1 = class(TForm)11
Button1: TButton;12
OpenDialog1: TOpenDialog;13
procedure FormCreate(Sender: TObject);14
procedure Button1Click(Sender: TObject);15
private16
{ Private declarations }17
public18
{ Public declarations }19
procedure DropFiles(var Msg: TMessage); message WM_DROPFILES;20

21
end;22

23
var24
Form1: TForm1;25

26
implementation27

28
{$R *.dfm}29

30
{ TForm1 }31
//显示文件路径32
procedure TForm1.Button1Click(Sender: TObject);33
begin34
if OpenDialog1.Execute then35
begin36
ShowMessage('当前文件路径为:'+OpenDialog1.FileName);37
end;38
end;39
//功能同上,显示文件路径40
procedure TForm1.DropFiles(var Msg: TMessage);41
var42
buffer: array[0..1024] of Char;43
begin44
inherited;45
buffer[0] := #0;46
DragQueryFile(Msg.WParam, 0, buffer, sizeof(buffer)); //第一个文件47
ShowMessage('当前文件路径为:'+buffer);48
end;49
//初始化,接受外部拖放50
procedure TForm1.FormCreate(Sender: TObject);51
begin52
DragAcceptFiles(Handle,True);//第二个参数为False时,不启用文件拖放53
end;54

55
end.
浙公网安备 33010602011771号