首页 > 其他分享 >【Delphi 开箱即用 1】简单实现拖拽文件到窗口

【Delphi 开箱即用 1】简单实现拖拽文件到窗口

时间:2024-05-17 20:40:32浏览次数:24  
标签:Delphi drop ncount acfilename cnmaxfilenamelen 开箱 message 拖拽

当今,大多数个人小程序都普遍具备拖拽功能,因为拖拽操作极其便捷。毕竟,相比于传统的浏览文件夹方式打开目标文件,拖拽操作简直是一种解放。在这里,我们无需依赖任何第三方控件,单纯通过代码实现拖拽功能。

目录

1. 最终效果图

2. 部分核心代码

procedure TForm3.WMDROPFILES(var Message: TWMDROPFILES);
const
  cnmaxfilenamelen = 255;
var
  i, ncount : integer;
  acfilename: array [0 .. 255] of char;
begin
  ncount := dragqueryfile(message.drop, $FFFFFFFF, acfilename, cnmaxfilenamelen);
  for i  := 0 to ncount - 1 do
  begin
    dragqueryfile(message.drop, i, acfilename, cnmaxfilenamelen);
    ListBox1.items.add(acfilename);
  end;
  dragfinish(message.drop);
end;

3. 完整Demo源码下载

来源 链接
本地下载: 拖拽文件Demo.zip

标签:Delphi,drop,ncount,acfilename,cnmaxfilenamelen,开箱,message,拖拽
From: https://www.cnblogs.com/YXGust/p/18198577

相关文章

  • delphi 文件的操作:重命名、复制、移动、删除 文件(转)
    delphi文件的操作重命名、复制、移动、删除文件RenameFile('Oldname','Newname');CopyFile(PChar('Oldname'),PChar('Newname'),False);MoveFile(PChar('Oldname'),PChar('Newname'));DeleteFile(文件名);Delphi判断文件......
  • Delphi DX10.2安装TeeChartPro2022找不到指定文件
    1、显示报错TeeChartProCompilationstarted:2024-05-1517:12:48Win32v25Enterprise(Delphi10.2andC++Builder10.2Update3)(C++)ERRORTee925Thisversionoftheproductdoesnotsupportcommandlinecompiling.TeeUI925Thisversionoftheproductdoe......
  • [C#] [WPF] 在MVVM中实现拖拽功能 - 入门
    拖拽功能是使用频率较高的一种交互,用传统方法去写很简单,但是在mvvm规则下,也没必要弄得很麻烦我的入门案例就选择了使用mvvm重写tutorialspoint-Interaction里的调色盘案例,view如下MainWindow.xaml这里的重点是控件要允许拖拽以及对应的事件目标控件,填充色绑定,......
  • el-table vxe-table 表格宽度拖拽
    <vxe-table   ref="table"   v-loading="listLoading"   :data="tableData"   border   stripe   :height="tableHeight"   :seq-config="{seqMethod}"   @resizable-change="res......
  • UEC++做拖拽时的UDragDropOperation 的PayLoad是什么
    在UnrealEngine中,使用C++进行拖拽操作时,UDragDropOperation类的Payload成员变量允许你传递与拖拽操作相关的任何类型的数据。它通常被用来存储一些关于被拖拽元素的信息,这些信息在拖拽开始时被设置,然后可以在拖拽结束时被检索和使用。Payload是一个UObject*类型的指针,这意......
  • Vue实现可拖拽边界布局
    实现可拖拽边界布局一种可拖拽边界的布局,通过拖动分隔线来调整不同区域大小。主要涉及到以下几个方面:布局结构:使用flex布局来实现容器和子元素的分配,使用style绑定来动态调整区域的大小,使用cursor属性来改变鼠标的形状。数据定义:使用data选项来定义不同区域的宽度和高度,以及是......
  • 使用pycnblog一键拖拽同步markdown和图片
    目录原因解决办法参考链接准备工作配置config.yaml其他设置图片运行原因本地使用Typora写完文档,上传博客园时,图片不能同步解决办法参考链接博客园上传markdown文件准备工作下载工具pycnblog安装Python3pipinstallpyyaml配置config.yamlblog_url:htt......
  • Delphi XE 时间和时间戳互转换【转】
    DelphiXE时间和时间戳互转换usesSystem.DateUtils;functionTForm1.Gettamptime(vlen:Integer):string;varss:string;beginifvlen=13thenbeginss:=DateTimeToTimeStamp(now).time.ToString;Result:=IntToStr(DateTimeToUnix(Now,false))+Copy......
  • mORMot 1.18 第08章 Delphi中的服务器端JavaScript
    mORMot1.18第8章Delphi中的服务器端JavaScript在mORMot框架中,对JavaScript脚本的支持被称为MonkeyOnRails(版权归PavelMashlyakovsky所有,邮箱:[email protected]),它借助了Mozilla基金会的SpiderMonkey类。mORMot允许程序员编写功能强大的应用程序,但如果客户希望自定义应用......
  • delphi 2006中,使用stdcall调用约定时,压缩结构参数的bug分析
    问题今天遇到一个很奇怪的问题,有一个dephi2006写的dll,使用了stdcall的调用约定,参数传递了结构体,在函数中收到的结构体值和传入的不一致,最后一个boolean类型,应为False,收到的是True,如下图:代码//结构体定义RStruct=packedrecordi1:Integer;i2:Integer;i3:I......