
前言
在很多工具类程序中,拖拽文件到窗口 是一个非常实用的功能。
例如:
- 拖拽图片自动导入;
- 拖拽文本文件直接打开;
- 拖拽视频文件开始转换……
这些操作都能让程序更“顺手”,用户体验更好。
调用代码
var
Form1: TForm1;
DropForm: TDropTargetHelper;
DropPanel: TDropTargetHelper;
DropMemo: TDropTargetHelper;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
// 开启Form拖拽
DropForm := TDropTargetHelper.Create(Self);
DropForm.OnDropFiles := FormDropFiles;
// 只允许拖拽图片文件
DropForm.AddAllowedExt('.jpg');
DropForm.AddAllowedExt('.png');
DropForm.AddAllowedExt('.bmp');
// 开启Panel拖拽
DropPanel := TDropTargetHelper.Create(Panel1);
DropPanel.OnDropFile := PanelDropFile;
// 开启Memo拖拽
DropMemo := TDropTargetHelper.Create(Memo1);
DropMemo.OnDropFile := MemoDropFile;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DropForm.Free;
DropPanel.Free;
DropMemo.Free;
end;
// 拖拽多个文件到窗体
procedure TForm1.FormDropFiles(Sender: TObject; const FileNames: TStrings);
begin
ShowMessage('窗体收到文件:' + sLineBreak + FileNames.Text);
end;
// 拖拽单个文件到 Panel1
procedure TForm1.PanelDropFile(Sender: TObject; const FileName: string);
begin
ShowMessage('Panel1收到文件:' + FileName);
end;
// 拖拽单个文件到 Memo
procedure TForm1.MemoDropFile(Sender: TObject; const FileName: string);
begin
ShowMessage('Memo1收到文件:' + FileName);
end;
// 关闭拖拽
procedure TForm1.Button1Click(Sender: TObject);
begin
DropForm.Disable;
DropPanel.Disable;
DropMemo.Disable;
end;
// 开启拖拽
procedure TForm1.Button2Click(Sender: TObject);
begin
DropForm.Enable;
DropPanel.Enable;
DropMemo.Enable;
end;

1702

被折叠的 条评论
为什么被折叠?



