当前位置: 首页 >> 程序设计 >> 编程:五步实现文件的拖放功能
 

编程:五步实现文件的拖放功能

作者:      来源:zz     发表时间:2007-02-13     浏览次数:      字号:    

五步实现文件的拖放功能
文/叶海河
用过Winamp的朋友都知道,Winamp支持文件拖放,当你想欣赏某个MP3文件时,只需将文件拖到Winamp的窗口上,然后放开鼠标就行了。如何让自己的程序也实现这样的功能呢?下面就以Delphi环境中的ListBox组件为例,向大家介绍一个如何实现支持文件拖放功能的方法。
1.新建一个工程,在Form1中添加一个Listbox控件和一个Label控件,分别为Listbox1和Label1。
2.本文主要使用到两个Windows API 函数:DragAcceptFile和dragqueryfile,它们都包含Shellapi单元中,所以必须在Uses部分加入Shellapi单元后才能使用这两个函数。
3.在public部分声明以下过程:
    procedure dropfiles(var message:tmessage);message wm_dropfiles;
4.程序实现代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
  //初始本窗口可接受文件拖放
  Dragacceptfiles(Form1.handle,true);
end;
procedure TForm1.dropfiles(var message:tmessage);
var
  p:array[0..254] of char;
  i:word;
begin
  // 取拖下文件的数量
  I:=dragqueryfile(message.wparam,$ffffffff,nil,0);

  //在Label1中显示拖动文件的数量
  Form1.Label1.Caption:='这次拖动了'+inttostr(i)+'个文件';

  // 循环取每个拖下文件的全文件名
  for I:=0 to I-1 do
  begin
    // 取文件名
    dragqueryfile(message.wparam,i,p,255);
    //将文件名添加到Listbox1中
    Form1.ListBox1.Items.Add(p);
  end;
end;
5.程序编写完成后按下F9试运行程序,然后从外部向Form1拖入数个文件,那么这些文件的文件路径及其名称就会被添加到Listbox1中,Label1是用来显示一次中拖放文件的数量。
通过简单的五个步骤,就实现了文件的拖放功能,只要编写相应的处理代码,就可以实现完整的拖放功能了。 

责任编辑 webmaster

 
 
 
 
 
评论更多>>
 
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •