让自己的软件实现拖拽打开文件

让自己的软件实现拖拽打开文件

                             作者: 帅宏军

//声明

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;

时间: 2025-01-21 00:52:44

让自己的软件实现拖拽打开文件的相关文章

Android新特性页面之ViewPager拖拽到最后一页再拖拽打开其他Activity(三种方法)_Android

 android新特性页面,ViewPager拖拽到最后一页再拖拽打开其他Activity.实现的方式有很多,效果比较好的就是到了最后一页再拖拽出现禁止蓝色条时再跳转activity 方式一:拿到ViewPager的边界条EdgeEffectCompat,判断是否到了边界(获取EdgeEffectCompat通过反射,方法来自网络最后边会给出原文) /** * 初始化view */ private void initView(){ pager = (ViewPager) findViewById

【火狐】火狐鼠标拖拽打开新标签扩展 QuickDrag 2.1.2.20

能看到这个标题然后进来的,你懂的!     xpi下载地址:http://down.tech.sina.com.cn/content/50652.html   说明:   支持 鼠标拖拽打开网址,相当犀利!

JAVA拖拽选择文件

最简单的选择文件的方式是使用文件选择框,但是这种方式在操作起来很麻烦,很多人在操作的时候喜欢直接使用鼠标拖拽,今天就为大家演示一下JAVA中如何实现直接用鼠标拖拽文件选择. import java.awt.datatransfer.DataFlavor; import java.awt.dnd.DnDConstants; import java.awt.dnd.DropTarget; import java.awt.dnd.DropTargetAdapter; import java.awt.d

基于jQuery实现拖拽图标到回收站并删除功能_jquery

本文利用jQuery实现一个拖拽删除桌面小图标的功能,使用起来就像操作系统的回收站一样,我们只需要拖动应用图标至垃圾箱即可删除这个图标,分享给大家,具体实现方法如下 运行效果图: 引入核心文件 这里需要引入jquery,jquery ui,与jquery ui css <link rel="stylesheet" href="assets/css/jquery-ui.css" /> <script src="js/jquery/1.8.3

c++-求教关于C++拖拽文件的问题

问题描述 求教关于C++拖拽文件的问题 C++怎么实现像QQ群上传文件一样,往聊天窗口的编辑框里拖拽一个文件,然后编辑框里面就会显示文件的图标和文件名,并且可以点击图标,也可以右键打开.复制等,也可以把这个图标一次删除掉 (我用的是VS2008的Win32项目,不是MFC项目). 我现在只可以实现往富文本框里面拖拽文件,然后显示图标和文件名,但是图标和文件名不是一个整体而是分开显示的,也不能点击图标,加不了右键菜单. 求教大神应该怎么做? (只剩下这一点点C币了...) 解决方案 http://

拖拽文件获得路径

这里主要用到一个函数 UINT DragQueryFile(          HDROP hDrop,     UINT iFile,     LPTSTR lpszFile,     UINT cch );     hDrop: HDROP标识符,即响应函数中的hDropInfo参数    iFile: 待查询的文件索引号,从0开始.可以同时拖拽多个文件,因此就需要一个索引号来进行区分.如果该参数为                        0xFFFFFFFF,则该函数返回拖拽的文件的

JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】_javascript技巧

本文实例讲述了JS实现放大.缩小及拖拽图片的方法.分享给大家供大家参考,具体如下: var divId; var v_left; var v_top; window.onload=function(){ divId = document.getElementById("block1"); var height1 = images1.height;//图片的高度 var width1 = images1.width;//图片的宽度 v_left=(document.body.client

拖拽:从 Dojo 到 HTML 5(1)

Dojo 及 HTML 5 简介 Dojo 是目前最流行的开源 JavaScript 工具库之一,很多开发者以及企业用户都把Dojo 作为首选的 JavaScript 工具.Dojo 为 Web 应用的开发提供了大量的客户端组件,能够让你可以方便的进行 HTML DOM 操作.拖拽.AJAX 调用.定制可视化控件等来使得你的 Web 应用变成富网络应用 (RIA).而且 Dojo 在性能.可访问性.多语言支持以及文档方面都做的非常出色,这也是企业选择 Dojo 的原因之一. 51CTO推荐专题:

JS HTML5拖拽上传图片预览_javascript技巧

1.文件API:(File API) file类型的的表单控件选择的每一个文件都是一个file对象,而FileList对象则是这些file对象的集合列表,代表所选择的所有文件.file对象继承于Blob对象,该对象表示二进制原始数据,提供slice方法,可以访问到字节内部的原始数据块.总之,file对象包含与FlieList对象,而file对象继承于Blob对象! 各对象的相关属性关系: FileReader接口: 由图可知:HTML5还提供了FileReader接口:用于将文件读入内存,并读取