Delphi从外部拖拽文件


本文整理自网络,侵删。

 

1.引用 ShellAPI单元

2.定义AppOnMessage,拦截处理拖拽文件操作

3.设置接收拖拽文件的对象。DragAcceptFiles(listview1.Handle, True);

4.定义对拖拽文件的具体操作WMDropFiles(var Msg: TWMDropFiles);

unit Unit1; //Delphi从外部拖拽文件

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, StdCtrls;

type

TForm1 = class(TForm)

ListView1: TListView;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;

procedure AppOnMessage(var Msg: TMsg; var Handled: Boolean);

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses ShellAPI;

{$R *.dfm}

procedure TForm1.AppOnMessage(var Msg: TMsg; var Handled: Boolean);

var

WMD: TWMDropFiles;

begin

if Msg.message = WM_DROPFILES then

begin

WMD.Msg := Msg.message;

WMD.Drop := Msg.wParam;

WMD.Unused := Msg.lParam;

WMD.Result := 0;

WMDropFiles(WMD);

Handled := TRUE;

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

{ UAC权限 使用这三行

ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);

ChangeWindowMessageFilter(WM_COPYDATA, MSGFLT_ADD);

ChangeWindowMessageFilter(WM_COPYGLOBALDATA , MSGFLT_ADD);

}

DragAcceptFiles(listview1.Handle, True);

Application.OnMessage := AppOnMessage;

end;

procedure TForm1.WMDropFiles(var Msg: TWMDropFiles);

var

N: Word;

buffer: array[0..180] of Char;

item: TListItem;

begin

with Msg do

begin

for N := 0 to DragQueryFile(Drop, $FFFFFFFF, buffer, 1) - 1 do

begin

DragQueryFile(Drop, N, Buffer, 80);

Item := ListView1.Items.Add;

item.Caption := StrPas(Buffer);

end;

DragFinish(Drop);

end;

end;

end.

相关阅读 >>

Delphi 如何获取窗口的图标

Delphi tms web core直接从html&css设计的页面布局

Delphi 中文大写日期转换函数

Delphi winapi: findwindow、findwindowex - 查找窗口

Delphi 主程序装载脚本

Delphi如何粘贴html格式文本到windows剪切板

Delphi用idhttp.get访问一个网址返回403错误,但用ie浏览器访问正常

Delphi通过loadlibrary调用其他动态库

Delphi之软件检测更新

Delphi vclskin 5.40在2010安装方法

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...