DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: szliyu112358
今日帖子: 55
在线用户: 19
导航: 论坛 -> 论坛精华贴 斑竹:liumazi,iamdream  
作者:
男 yckxzjj (刀剑如梦) ★☆☆☆☆ -
盒子活跃会员
2004/2/4 17:12:50
标题:
如何在Delphi程序中支持文件拖放 浏览:9304
加入我的收藏
楼主: unit uDropFile;
{=========================如何在Delphi程序中支持文件拖放========================}
//支持文件拖放关键在于两点 :
//1 、使程序能接收WM_DROPFILES消息 ;
//2 、在WM_DROPFILES消息的响应程序中取得被拖放的文件名,然后进行相应处理。
// 使程序能接收WM_DROPFILES消息
// 首先,需要调用WINAPI DragAcceptFiles(Handle, True);
// 其中的Handle为要接收WM_DROPFILES消息的控件的Handle 。
// 例如,我们要让RichEdit接收该消息,则调用形式为:
// DragAcceptFiles(DropFileFrm.RichEdit.Handle, True);
// 其次,要在收到 WM_DROPFILES 消息时做处理,需要用自己的代码替换该控件的WindowProc方法。
// 在替换前,要保存原来的WindowProc方法以便处理其他消息。
// 为此,我们定义一个全程变量OldWndProc: TWndMethod保存原来的WindowProc方法;
// 再在窗体定义的Public段定义了一个方法:
// procedure DragFileProc(var Message: TMessage);
// 作为新的WindowProc方法。在Unit的implementation段内写下DragFileProc的完整代码,
// 当消息为其他消息地调用OldWndProc来处理,当消息为WM_DROPFILES时,作相应处理。
// 取得被拖放的文件名,然后进行相应处理
// 在WM_DROPFILES消息的响应程序中,先调用:
// DragQueryFile(Message.wParam, $FFFFFFFF, nil, 0);
// 返回值为拖放的文件总数。再循环调用:
// DragQueryFile(Message.wParam, FileNum, Buf, Len);
// 取得拖放文件全名。FileNum为0到拖放的文件总数减1的值,buf为Pchar型,
// 是存放文件名的缓冲区,Len为文件名缓冲区长度。至于取得文件名后的处理,就悉听尊便了。
// 一定要注意 Pchar 和 String 的转换!
{===============================================================================}

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ShellApi, ComCtrls;

type
TDropFileFrm = class(TForm)
RichEdit: TRichEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure DragFileProc(var Message: TMessage); 
{ Public declarations }
end;

var
DropFileFrm: TDropFileFrm;

implementation

var
OLDWndProc: TWndMethod;

{$R *.dfm}

procedure TDropFileFrm.DragFileProc(var Message: TMessage);
var
FileNum: Word;
p: array[0..254] of char;
begin
if Message.Msg = WM_DropFiles then
begin
Self.RichEdit.Clear;
FileNum := DragQueryFile(Message.WParam,$FFFFFFFF,nil,0);
// 取得拖放文件总数
for FileNum := 0 to FileNum - 1 do
begin
DragQueryFile(Message.WParam, FileNum , p ,255);
// 取得拖放文件名
//Self.MemoDrag.Lines.add(StrPas(p));
//对文件的处理
RichEdit.Lines.LoadFromFile(StrPas(p));
end;
end
else // 其他消息,调用原来的处理程序
OLDWndProc(Message);
end; 

procedure TDropFileFrm.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Self.RichEdit.Handle, True);
OLDWndProc := Self.RichEdit.WindowProc;
// 保存原来的 WindowProc
Self.RichEdit.WindowProc := Self.DragFileProc;
// 设置新的 WindowProc
RichEdit.Lines.Clear;
end;

end.
----------------------------------------------
主页名称:Delphi编程驿站
主页网址:http://www.delphidak.com
版主网名:刀剑如梦
QQ号码:1917208
主页简介:
Delphi编程驿站,以Delphi为主题的编程站点,明确的主题、一致的版面。本站的宗旨:与您共同进步、成长!
作者:
男 quanke1980 (都是我老师) ★☆☆☆☆ -
普通会员
2004/2/27 17:02:31
1楼: 好,我狂顶
----------------------------------------------
-
作者:
男 wwwwwwwwww (www) ★☆☆☆☆ -
盒子活跃会员
2004/9/3 21:24:21
2楼: 不错

----------------------------------------------
-警钟是人类的声音,
    时钟是上帝的声音!
作者:
男 linker (小心) ★☆☆☆☆ -
盒子活跃会员
2004/11/13 9:54:44
3楼: 好貼啊。。。。。。。
----------------------------------------------
按此在新窗口浏览图片 按此在新窗口浏览图片
作者:
男 jevons (jevons) ★☆☆☆☆ -
盒子活跃会员
2004/11/13 11:37:03
4楼:
----------------------------------------------
-
作者:
男 lcq419 (^&^ 超 旗) ★☆☆☆☆ -
盒子活跃会员
2004/11/23 10:35:30
5楼: 写得很好,可是,我怎么样才能知道那么多API还不消息的用法呢
----------------------------------------------
-
作者:
男 benson0571 (benson0571) ★☆☆☆☆ -
普通会员
2005/12/16 16:32:54
6楼: 楼主你的帖子非常不错,但是我有个疑问
得到的拖放文件名是没错,但是可以得到的不仅仅是文件名还包括了文件路径
请问如何能只得到文件名而不包括文件路径呢?
我现在正在做个程序就是只要文件名而不要路径的,也是通过拖放的方式得到。
请帮帮我
----------------------------------------------
-
作者:
男 saxash (包子) ★☆☆☆☆ -
普通会员
2005/12/16 17:14:12
7楼: 好帖,收藏
----------------------------------------------

没有必要做的事,就有必要不去做。
作者:
男 hujiacheng ( 旺财) ★☆☆☆☆ -
普通会员
2010/1/1 15:20:51
8楼: http://hi.baidu.com/hellowzr/blog/item/c333fe3c9b0b5ce73c6d9715.html
看这个吧 。
----------------------------------------------
免费的FTPhttps://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019>http://delphi-z.ruhttps://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019>http://delphi.icm.edu.pl/ftp/https://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019>http://delphi-z.ruhttps://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019
作者:
男 linhangren (asdasd123) ★☆☆☆☆ -
禁用账号
2010/4/6 14:51:21
9楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
男 baidu006 (chong) ▲▲▲▲▲ -
普通会员
2011/6/23 17:16:14
11楼: 有这样一个故事,干旱的村子缺水,村里决定雇布鲁诺和柏波罗把附近河里的水运到深圳龙岗搬家公司村广场的蓄水池里,每天按运送的水量付钱,布鲁诺每天起早贪黑地工作,挣了不少收入;而柏波罗则用一部分时间运水,而用另一部分时间和周末休息日来建造深圳南山搬家公司他的管道。与柏波罗相比,布鲁诺挣的钱要多很多,很快富裕起来了。但几年以后,柏波罗的管道修成了,从此无论是吃饭还是睡觉,或是出去游玩,水都在源源不断地流进村里,而财富也不分昼夜地流进柏波罗的口袋。而深圳福田搬家公司布鲁诺却失了业,因为村子再也不需要他背着水桶运水了。这本六七万字的小书告诉人们,不要忘了修建你的财富管道,管道是你的生命线。书里还有一句很有味道的话,“今天,成为一名百万富翁深圳罗湖搬家公司不是一种机会,而是一种选择”。有一条管道的确是个美好的梦想,当你休息、休闲、休假的时候,管道不休息,源源不断地把财富送来,挡都挡不住。世界上深圳龙华搬家公司有些人的确是幸运,生下来就有这种管道,比如屁股底下坐着石油的人,只需要找根管子,一头接在地下,一头接在钱包上,就剩下数钱了,稍稍把阀门拧小点,每桶75块,还是美元;还有的人生下来就有权有势,只需要找几根管子把深圳宝安搬家公司几个图章连在一块儿就行了。而绝大多数人则要修建自己的管道。文人里面,据我所知鲁迅、巴金和李敖是修了管道的,鲁迅生前身后版税可观,巴老则从未拿过工资,《家》、《春》、《秋》等几部巨著的版税能让老人家衣食无忧,所以老人说了很多深圳罗湖搬家公司自己想说的话;李敖早就不靠着工资活着了,所以把“李敖有话说”玩儿得汪洋恣肆,淋漓尽致。建造管道的确是有力的,如果学会了炒股赚钱,一天一个涨停板,从下午三点闭市到第二天上午九点开盘,您歇着,股市可没歇着,还为您赚钱呢。甭多,就深圳福田搬家公司一万元起家,一天一个板,一年就赚中国22年的GDP,所以套牢了那么多人。对一个普通人来说,修建管道有很多困难,但心里有这个事儿,就很有意义,一个深圳南山搬家公司有准备的头脑肯定也会碰到更多的机会。与管道相比,我对勺子更感兴趣,勺子就是工作的收入。世界上的资源就那么多,锅就那么大,大家都在从锅里往外舀,只是深圳搬家公司有人用大勺,有人用小勺,有人用挖耳勺。要想多舀一点,就得把勺子做大。所以,要念书,要读学位,要考证,要跳槽,要争取升职,要读《怎样让老板离不开你》、《拒绝借口》、《怎样与女上司相处》,诸如深圳龙岗搬家公司此类老板和中层主管希望你读的书。读MBA、PHD、CFA、CPA,洗脑充电,恨不得把自个儿的DNA都改变了,就是为了把勺子做大。曾把上海“第一的哥”的那套绝活儿给一位天津的哥讲,这深圳宝安搬家公司老兄也说了不少经验,早上七点到九点在小区等活儿,九点到下午五六点蹲写字楼,六七八点蹲饭店,夜晚蹲宾馆、歌厅、洗浴,写字楼要看多少层、有没有什么大公司,宾馆要看晚上亮多少灯,哪儿的活儿“肥瘦”心中有数,道路哪儿通哪儿堵深圳空调拆装了然于胸,还有个不赚钱的?说起有些在一个地方“死蹲”的主儿,这老兄嗤之以鼻,“有活儿就拉,没活儿就玩牌”,那叫干活儿么?干活儿得琢磨,得动脑子!当时就感觉茅塞顿开,受益匪浅———是呀,干活儿得“动脑子”。倒退深圳空调移机二三十年,工人里很有些手巧的,自己动手,丰衣足食,偶尔从单位“顺”点什么,从盖小厨房、攒自行车、打家具,有的还能鼓捣点电器,攒收音机,还有自个儿攒电视的。不少人退休后还能找到个地方补差,有的还挺抢手。现在车钳刨铣磨的熟练工都供不应求,会修数控机床的更是奇缺。据统计,现在中国制造业发展的瓶颈不是资源、资金,却是缺少熟练的技术工人。当然,从单位“顺”东西不好,但深圳空调回收曾有一家日本公司从不禁止工人、技术员从企业拿元器件回家做试验,结果是凝聚了最出色的员工,因为他们找不到第二家企业能够享受这个待遇,企业相信你的诚实,鼓励你的创造力。“干深圳旧货回收一行,爱一行,干一行,钻一行”,这句老话到了资本时代,看来还是挺适用。按照经济学理论,收入取决于你工作的可替代性,可替代性越低,收入越高,反之就是收入越低。而可替代性就取决于你干活儿是不是动脑子。
----------------------------------------------
深圳龙岗搬家公司 深圳南山搬家公司
 深圳福田搬家公司 深圳罗湖搬家公司
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/6/26 23:55:26
12楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/7/3 21:22:41
13楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/7/3 21:27:00
14楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/7/3 21:35:35
15楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/7/3 21:41:31
16楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/7/8 22:46:31
17楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
男 minlanzi (123456) ▲▲▲▲▲ -
普通会员
2012/9/22 20:11:05
19楼: 春水堂
----------------------------------------------
春水堂
作者:
男 falv82 (falv82) ▲▲▲△△ -
普通会员
2018/1/2 9:40:52
20楼: 欧米伽3官网 (http://www.omg3.net)- 全国最稳定、最权威的欧米伽叁销售平台
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行85.9375毫秒 RSS