向listview裏拖放程序

unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   ShellAPI,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,  
      Forms,  
      Dialogs,   StdCtrls,   ComCtrls;  
   
  type  
      TForm1   =   class(TForm)  
          ListView1:   TListView;  
          procedure   FormCreate(Sender:   TObject);  
      private  
          {   Private   declarations   }  
          procedure   WMDropFiles(var   Msg:   TWMDropFiles);   message   WM_DROPFILES;  
          procedure   AppOnMessage(var   Msg:   TMsg;   var   Handled:   Boolean);  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.dfm}  
   
  procedure   TForm1.AppOnMessage(var   Msg:   TMsg;   var   Handled:   Boolean);  
  var  
      WMD:   TWMDropFiles;  
  begin  
      if   Msg.message   =   WM_DROPFILES   then  
      begin  
          //         MessageBeep(0);  
          WMD.Msg   :=   Msg.message;  
          WMD.Drop   :=   Msg.wParam;  
          WMD.Unused   :=   Msg.lParam;  
          WMD.Result   :=   0;  
          WMDropFiles(WMD);  
          Handled   :=   TRUE;  
      end;  
   
  end;  
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  begin  
      DragAcceptFiles(listview1.Handle,   True);  
      //     DragAcceptFiles(Handle,   True);  
  //     DragAcceptFiles(Application.Handle,   True);  
      Application.OnMessage   :=   AppOnMessage;  
   
  end;  
   
  procedure   TForm1.WMDropFiles(var   Msg:   TWMDropFiles);  
  var  
      N:   Word;  
      buffer:   array[0..180]   of   Char;  
      item:   TListItem;  
  begin  
   
      with   Msg   do  
      begin  
          for   N   :=   0   to   DragQueryFile(Drop,   $FFFFFFFF,   buffer,   1)   -   1   do  
          begin  
              DragQueryFile(Drop,   N,   Buffer,   80);  
              Item   :=   ListView1.Items.Add;  
              item.Caption   :=   StrPas(Buffer);  
            end;  
          DragFinish(Drop);  
      end;  
   
  end;  
   
  end.  

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章