📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
protected
procedure WndProc(var Message: TMessage); override;
end;
var
Form1: TForm1;
implementation
uses ShellAPI; { DragAcceptFiles和DragQueryFile是声明在ShellAPI 单元的}
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle, True); {将Form1注册为文件拖放接收控件}
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DragAcceptFiles(Handle, False); {注销Form1}
end;
procedure TForm1.WndProc(var Message: TMessage);
var
Count, Index, hDrop: Integer;
PFileName: PChar;
begin
if Message.Msg = WM_DROPFILES then
begin
hDrop := Message.WParam; {取得系统drop结构的句柄,在后面要用到它}
GetMem(PFileName, MAX_PATH);
Count := DragQueryFile(hDrop, MAXDWORD, PFileName, MAX_PATH-1); {取得文件个数}
ListBox1.Items.Clear;
for Index := 0 to Count-1 do
begin
DragQueryFile(hDrop, Index, PFileName, MAXBYTE); {取得每个文件的路径并放入缓冲区PFileName }
ListBox1.Items.Add(PFileName);
end;
FreeMem(PFileName);
DragFinish(hDrop); {当WM_DROPFILES被处理后,应该调用DragFinish 释放资源}
end else
inherited;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -