tlistview使用--拖放操作

原创 2003年08月13日 10:33:00

下列程序是本人在软件开发过程中根据用户操作上的方便,写的一个小过程,主要实现了向listview控件中拖放文件功能,其源代码如下:

procedure tyanzheng.AppMessage(var Msg: TMsg;var Handled: Boolean);
var
nFiles, I: Integer;
ListItem: TListItem;
begin
if (Msg.message = WM_DROPFILES) and (msg.hwnd = ListView1.Handle) then
begin
if MessageDlg('确定要加入吗',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
// 取dropped files的数量
nFiles := DragQueryFile (Msg.wParam, $FFFFFFFF, nil, 0);
// 循环取每个拖下文件的全文件名
try
for I := 0 to nFiles - 1 do
begin
// 为文件名分配缓冲 allocate memory
SetLength (Filename, 80);
// 取文件名 read the file name
DragQueryFile (Msg.wParam, I, PChar (Filename), 80);
Filename := PChar (Filename);
//将全文件名分解程文件名和路径
ListItem := ListView1.Items.Add;
ListItem.Caption := ExtractFileName(FileName);
listitem.ImageIndex:=6;
ListItem.SubItems.Add(ExtractFilePath(FileName));
filepath:=extractfilepath(filename);
//drage:=true;
end;
finally
//结束这次拖放操作
DragFinish (Msg.wParam);
end;
//标识已处理了这条消息
Handled := True;
 movefile(pchar(filename),pchar(filespath+listitem.caption));
end;end;
end;
注意:本程序功能是完整的,程序中使用了movefile函数,也就是说,实现了把操作的文件移到了系统所在的目录中,因此建议在调试过程中不要用重要的文件作调试用。

程序中用到了向windows发送消息,不明白的话,建议看一些有关方面的文章(本程序可直接运行,须加入到系统中),本程序与《tlistview显示文件夹内容中的程序结合使用,效果更好》

程序用在showform事件中:用法如下:

//设置需要处理文件WM_DROPFILES拖放消息
DragAcceptFiles(ListView1.Handle, TRUE);
//设置AppMessage过程来捕获所有消息
Application.OnMessage := AppMessage;

谢谢支持

TListView的用法(转载)

原文地址:http://www.cnblogs.com/sideandside/archive/2007/03/26/688707.html TListView用法1.TListView方法:proc...
  • Yang_Seal
  • Yang_Seal
  • 2010年07月28日 14:52
  • 3843

delphi 7中Tlistview的使用

今天刚注册了,  先发一篇文章试试, 照朋友的话说, 我是稀缺人才, 现在没有人用delphi了, anyway, 把自己多年的一点经验share一下. 如果不使用第3方空间的话, delphi 中的...
  • t2wei
  • t2wei
  • 2007年06月21日 11:57
  • 1183

Delphi拖放操作

今天明白了如何进行拖放操作(有赖于下面转载的文章)。而且进一步实验如何在cxgrid中拖放记录,其中有一个关键点就是目标对象的OnDragOver中写入Accept := (Source is Tcx...
  • yumenglong
  • yumenglong
  • 2009年08月01日 10:37
  • 2474

全面掌握C#中的拖放操作

随着桌面系统的推出,利用鼠标的拖放(Drag and Drop)操作由于其简单、直接,受到了越来越多的读者的欢迎,为迎合这种趋势,越来越多程序员在自己的程序中使用了拖放操作。拖放操作方便了程序的使用者...
  • ILOVEMSDN
  • ILOVEMSDN
  • 2006年12月26日 17:55
  • 1179

用C# 实现拖放操作

在应用程序中,是通过处理一系列事件,如DragEnter,DragLeave和DragDrop事件来实现在Windows应用程序中的拖放操作的。通过使用这些事件参数中的可用信息,可以轻松实现拖放操作。...
  • 3cts
  • 3cts
  • 2007年07月21日 06:56
  • 1053

利用MFC实现对象拖放

 利用MFC实现对象拖放对象拖放是指对某一指定的对象,利用鼠标拖动的方法,在不同应用的窗口之间、同一应用的不同窗口之间或同一应用的同一窗口内进行移动、复制(粘贴)等操作的技术。利用对象拖放,可以为用户...
  • sendy888
  • sendy888
  • 2007年08月17日 16:42
  • 2234

虚拟机安装(VirtualBox VM)相关问题(启动,复制,拖拽)及解决

虚拟机安装一些基本问题的解决笔记
  • u010140575
  • u010140575
  • 2017年01月04日 10:30
  • 6524

Delphi列表视图组件(TListView)详解

·BoundingRect 返回一个能把列表视图中所有项包住的矩形 ·CheckBoxed 列表视图中项的旁边将显示复选框 ·Column 此属性可以访问列表视图中的每一栏 ·ColumnCli...
  • yt_maomao
  • yt_maomao
  • 2014年07月12日 13:54
  • 1144

TListView

//删除当前行 for i:=ListView1.Items.Count-1 downto 0 Do if ListView1.Items[i].Caption = Edit1.Text then b...
  • gfuchao
  • gfuchao
  • 2013年03月12日 06:06
  • 390

如何使用HTML5进行文件拖放

实现将文件从桌面直接拖放到浏览器中是web应用开发的终极目标之一,本文作为接下来四篇文章的第一篇将解决以下问题: 1.实现将一个文件拖放到一个页面元素上 2.在JavaScript中分析拖放的...
  • goitcast
  • goitcast
  • 2012年08月27日 09:13
  • 1770
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:tlistview使用--拖放操作
举报原因:
原因补充:

(最多只允许输入30个字)