DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: tigerleentu
今日帖子: 12
在线用户: 16
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 ceteric (ceteric) ★☆☆☆☆ -
普通会员
2015/9/29 21:08:00
标题:
如何实现TVirtualTreeView拖放节点到Windows资源管理器,实现自定义拷贝 浏览:969
加入我的收藏
楼主: 请教各位,我看这个控件默认支持OLE拖放,试着做了从资源管理器中拖放文件过来,可以获得拖放的文件列表,结合自带的几个dragdrop事件,很好用。

但反向拖节点到资源管理器就比较困惑。主要是我要自定义拷贝方式,也就是说拖到资源管理放开鼠标的时候,需要获取其目录信息,然后我可以根据需要拷贝指定文件到该目录。

这个怎么实现?
----------------------------------------------
-
作者:
男 hardnut (麦轲数据管家) ★☆☆☆☆ -
普通会员
2015/9/29 22:47:29
1楼: GZ
----------------------------------------------
UniKeeper V10.40 -- 您最贴心的个人数据管理助手
作者:
男 luckyso999 (luckyso) ★☆☆☆☆ -
盒子活跃会员
2015/9/30 8:29:11
2楼: GZ?good job??
----------------------------------------------
-
作者:
男 luckyso999 (luckyso) ★☆☆☆☆ -
盒子活跃会员
2015/9/30 8:30:53
3楼: 做过类似的软件,说实话,从软件拖放到资源管理器很复杂
----------------------------------------------
-
作者:
男 ceteric (ceteric) ★☆☆☆☆ -
普通会员
2015/9/30 8:43:40
4楼: 嗯,确实比较麻烦。
如果只是传递已知文件,完全模仿windows自身的拖放拷贝还简单些,但如果要在这个过程中实现自定义操作,势必需要提前获取目的地的路径,似乎windows并不直接支持这种操作。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2015/9/30 9:12:57
5楼: 请学习 ZIP RAR 的做法。
当你拖出去的时候。
将文件复制到 TEMP 目录。
然后 设置 拖动目标的源文件就是你 TEMP目录下的文件。
然后 WINDOWS 就会自己完成拖动。但是这个过程会卡住你的目标和你的界面。

另一个做法。当拖出去的时候,你获取目标目录。然后结束拖动。
你自己复制文件到目标目录。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 ceteric (ceteric) ★☆☆☆☆ -
普通会员
2015/9/30 17:38:38
6楼: @wang_80919
第一种不适用,卡顿和大量的临时文件很烦人,而且临时文件删除时机也比较麻烦。并且不适合首先需要用户确认操作的情况。这种实现起来倒是相对简单。

第二种是我目前研究的。遗憾的是,windows的拖放并不直接提供拖放目的的任何信息,无法直接获取目的地目录。现在我发现一个变通的做法,研究可否实现中。
----------------------------------------------
-
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2015/9/30 20:20:35
7楼: Windows右键(特别是粘帖功能)是怎么知道当前目录的?能不能从这个角度切入?
----------------------------------------------
只有偏执狂才能生存!
作者:
男 sspeak (sspeak) ★☆☆☆☆ -
盒子活跃会员
2015/10/5 10:28:09
8楼: CFSTR_FILECONTENTS
----------------------------------------------
-
作者:
男 ceteric (ceteric) ★☆☆☆☆ -
普通会员
2015/10/5 13:10:09
9楼: 我的思路:
拖放开始时刻生成一个临时文件,按照dragdrop的标准,实际对该临时文件进行拖放,Windows实际上是拷贝了这个文件,同时开启了文件系统的监控,对该临时文件名进行监控,一旦发现有创建(其实是windows拖放后拷贝),返回该路径。这样就获取了拖放目的地的路径了,然后在目的地删除该临时文件,并触发实际需要的下载或者其他操作。

这个思路我实验了,基本达到要求。

各位如果有更好的办法,希望不吝赐教。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS