博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
让窗体接受拖放, 并获取拖过来的文件信息
阅读量:6138 次
发布时间:2019-06-21

本文共 1995 字,大约阅读时间需要 6 分钟。

原理分析:    这需要用到 ShellAPI 单元的两个函数: DragAcceptFiles、DragQueryFile;    用 DragAcceptFiles(窗口句柄, True); 以让窗口能够接受拖放;    然后就等待 WM_DROPFILES 消息, 并用 DragQueryFile 函数处理消息参数, 从而获取信息.  --------------------------------------------------------------------------------     代码文件:  --------------------------------------------------------------------------------     unit Unit1;    interface    uses    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,    Dialogs, StdCtrls;    type    TForm1 = class(TForm)      Memo1: TMemo;      procedure FormCreate(Sender: TObject);    protected      procedure WMDropFiles(var Message: TWMDropFiles); message WM_DROPFILES;    end;    var    Form1: TForm1;    implementation    {$R *.dfm}    uses ShellAPI;    procedure TForm1.FormCreate(Sender: TObject);  begin    DragAcceptFiles(Handle, True);  end;    procedure TForm1.WMDropFiles(var Message: TWMDropFiles);  var    p: array[0..255] of Char;    i,count: Integer;  begin    {先获取拖拽的文件总数}    count := DragQueryFile(message.Drop, $FFFFFFFF, nil, 0);      {分别获取文件名}    for i := 0 to count-1 do    begin      DragQueryFile(message.Drop, i, p, SizeOf(p));      Memo1.Lines.Add(p); {既然知道了文件名, 当然也可以随手打开它}    end;  end;    end.  --------------------------------------------------------------------------------    窗体文件:  --------------------------------------------------------------------------------     object Form1: TForm1    Left = 0    Top = 0    Caption = 'Form1'    ClientHeight = 154    ClientWidth = 261    Color = clBtnFace    Font.Charset = DEFAULT_CHARSET    Font.Color = clWindowText    Font.Height = -11    Font.Name = 'Tahoma'    Font.Style = []    OldCreateOrder = False    OnCreate = FormCreate    PixelsPerInch = 96    TextHeight = 13    object Memo1: TMemo      Left = 0      Top = 0      Width = 261      Height = 129      Align = alTop      Lines.Strings = (        'Memo1')      ScrollBars = ssBoth      TabOrder = 0    end  end

  

转载于:https://www.cnblogs.com/qingsong/p/4033007.html

你可能感兴趣的文章
groovy/java自实现json解析器(2)JsonObject
查看>>
Linux IP_FORWARD introduce
查看>>
ThinkPHP getBy查询
查看>>
几条简单SQL的系统级抽象
查看>>
Android图片压缩(质量压缩和尺寸压缩)
查看>>
nilfs (a continuent snapshot file system) used with PostgreSQL
查看>>
【SICP练习】150 练习4.6
查看>>
Shell脚本 使用sed流编辑器一键修改CentOS网卡IP地址
查看>>
java反射详解
查看>>
Rsync使用注意事项
查看>>
沐风老师3dsMax手把手教系列:椅子建模(款式001)
查看>>
Mac Tomcat 安装与配置
查看>>
自己写中文分词之(二)_用HMM模型实现分词
查看>>
java开发过程中的命名规范
查看>>
Linux系统启动过程及其修复过程简析(CentOS5、6)
查看>>
CentOS 7 防火墙设置
查看>>
RHEL java 环境变量
查看>>
关于embedded linux的使用、开发、学习的一点自已的体会
查看>>
找到一部不错的c语言学习教程
查看>>
openstack 虚拟机添加网卡
查看>>