让自己的软件实现拖拽打开文件

让自己的软件实现拖拽打开文件

                             作者: 帅宏军

//声明

protected     procedure WMDROPFILES(var Msg : TMessage); message WM_DROPFILES;

------------------------------------------------------------------------------------------------------------------------

//实现

procedure TFormMain.WMDROPFILES(var Msg: TMessage); var   i, n: Integer;   Buffer: Array[0..255] of Char; begin   //得到拖拽文件数量   n := DragQueryFile(Msg.wParam, $FFFFFFFF, Buffer, 255);

  //处理选择多个文件   for i := 0 to n - 1 do   begin     //获取拖拽文件名     DragQueryFile(Msg.wParam, i, Buffer, 255);

    //文件名就在Buffer里面了     if UpperCase(ExtractFileExt(Buffer)) = '.BZLX' then     begin       //判断文件是否已经打开       if UpperCase(Buffer) = UpperCase('test.bzlx') then       begin         MessageDlg('文件test.bzlx已经打开!', (mtInformation),[mbOK],0);         exit;       end;

      //打开文件       OpenFile(Buffer);

      exit;     end;   end;

  //结束拖拽   DragFinish(Msg.wParam); end;

------------------------------------------------------------------------------------------------------------------------

//初始化

procedure TFormMain.FormCreate(Sender: TObject); begin   //使窗口句柄可以接收拖拽操作

  DragAcceptFiles(Handle, True);

end;

posted @ 2015-04-15 19:47  出离  阅读(313)  评论(0编辑  收藏  举报