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.

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55
