让自己的软件实现拖拽打开文件(覆盖WM_DROPFILES,使用DragQueryFile,DragFinish API函数)
作者: 帅宏军
//声明
protected
procedure WMDROPFILES(var Msg : TMessage); message WM_DROPFILES;
------------------------------------------------------------------------------------------------------------------------
//实现
procedure TFormMain.WMDROPFILES(var Msg: TMessage);
var
i, n: Integer;
Buffer: Array[0..255] of Char;
begin
//得到拖拽文件数量
n := DragQueryFile(Msg.wParam, $FFFFFFFF, Buffer, 255);
//处理选择多个文件
for i := 0 to n - 1 do
begin
//获取拖拽文件名
DragQueryFile(Msg.wParam, i, Buffer, 255);
//文件名就在Buffer里面了
if UpperCase(ExtractFileExt(Buffer)) = '.BZLX' then
begin
//判断文件是否已经打开
if UpperCase(Buffer) = UpperCase('test.bzlx') then
begin
MessageDlg('文件test.bzlx已经打开!', (mtInformation),[mbOK],0);
exit;
end;
//打开文件
OpenFile(Buffer);
exit;
end;
end;
//结束拖拽
DragFinish(Msg.wParam);
end;
------------------------------------------------------------------------------------------------------------------------
//初始化
procedure TFormMain.FormCreate(Sender: TObject);
begin
//使窗口句柄可以接收拖拽操作
DragAcceptFiles(Handle, True);
end;
最新文章
- python取mysql数据写入excel
- RadGrid使用技巧:从RadGrid获取绑定的值
- linux下安装vtune_amplifier_xe_2015_update4
- (Hibernate进阶)Hibernate搭建开发环境+简单实例(二)
- SQL Server 和Oracle 数据类型对应
- GitHub 基本操作流程
- cocos2d-x 屏幕坐标系和OPenGL坐标系转换
- 【转】vs2008中leptonica-1.68安装配置
- [转] 8张图学习javascript
- mysql数据库root密码忘记的修改
- 2017Unity开发者大会备受关注的原因有哪些?
- css浮动Float
- 【2017集美大学1412软工实践_助教博客】团队作业10——项目复审与事后分析(Beta版本)
- 2017最新PHP面试题
- JBOSS EAP 6 系列六 公共模块的jar配置到jboss的modules详细配置
- pycharm 激活方法
- ";tsc.exe";已退出,代码1
- postmortem报告
- combbox选中新添加的数据
- CSS2.0中最常用的18条技巧
热门文章
- 华为荣耀3C最新版ROM的root,(4.7.1和4.8.1等等通用方法)
- smarty课程---最最最简单的smarty例子
- 搭建Disuz论坛社区
- Windows学习总结(4)——Host文件的作用和如何修改Host文件
- php课程 12-38 php的类的构造方法和析构方法怎么写
- IK分词器插件elasticsearch-analysis-ik 6.1.1
- @JSONField 注解说明
- 28.lambda表达式与多线程
- 2.4 Connect API官网剖析(博主推荐)
- Vue的全选功能实现思路