• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

        在Delphi中接受文件拖放

        在Delphi中接受文件拖放

        更新時間:2022-05-16 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        很不爽的是,用Delphi封裝在Form里的那些東西是沒辦法接受用戶從我的電腦里拖放到你的Form上的文件的,但在做軟件的時候這又是很必要的,我昨天研究了一晚上終于解決了這個問題。
        首先,給你的Project加一個Unit,代碼如下:
        unit untDrag;

        interface

        //用來告訴Windows你的Form可以接受文件拖放
        {$EXTERNALSYM DragAcceptFiles}procedure DragAcceptFiles(hWnd: Cardinal; fAccept: Boolean); stdcall;
        //得到拖放文件名和文件個數(shù)的API
        {$EXTERNALSYM DragQueryFile}
        function DragQueryFile(hDrop: Cardinal; iFile: Cardinal; lpszFile: PChar; cch: Integer): Integer; stdcall;
        //釋放Windows分配給拖放操作的內(nèi)存
        {$EXTERNALSYM DragFinish}
        procedure DragFinish(hDrop: Cardinal); stdcall;
        //得到拖放的文件個數(shù)
        function GetDragFileCount(hDrop: Cardinal): Integer;
        //得到拖放的文件名,通過FileIndex來指定文件編號,默認(rèn)為第一個文件
        function GetDragFileName(hDrop: Cardinal; FileIndex: Integer = 1): string;

        implementation

        procedure DragAcceptFiles; external 'Shell32';
        function DragQueryFile; external 'Shell32';
        procedure DragFinish; external 'Shell32';

        function GetDragFileCount(hDrop: Cardinal): Integer;
        const
          DragFileCount=High(Cardinal);
        begin
          Result:= DragQueryFile(hDrop, DragFileCount, nil, 0);
        end;

        function GetDragFileName(hDrop: Cardinal; FileIndex: Integer = 1): string;
        const
          Size=255;
        var
          Len: Integer;
          FileName: string;
        begin
          SetLength (FileName, Size);
          Len:= DragQueryFile(hDrop, FileIndex-1, PChar(FileName), Size);
          SetLength (FileName, Len);
          Result:= FileName;
        end;

        end.

        然后,在你需要處理拖放的Form的OnCreate里面加上這么一句:
        DragAcceptFiles (Handle, True);

        在TForm1的public里面加上如下聲明:
        procedure MyDrag (var Msg: TWMDropFiles); message WM_DropFiles;

        下面是此過程的實現(xiàn):
        procedure TForm1.MyDrag (var Msg: TWMDropFiles);
        var
          hDrop: Cardinal;
          ...
        begin
          hDrop:= Msg.Drop;  //這個是拖放句柄
          ...(在這里可以用GetDragFileName和GetDragFileCount)
          //最后記得要用這兩句話:
          DragFinish (hDrop);
          Msg.Result:= 0;
        end;

        當(dāng)然,要在Form的Unit上面加上
        uses untDrag;

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 免费可以在线看A∨网站| 色猫咪免费人成网站在线观看| 久久国产精品亚洲综合| 亚洲国产精品日韩在线| 99精品免费观看| 亚洲狠狠狠一区二区三区| 日本最新免费网站| 国产亚洲色婷婷久久99精品91| 男人和女人高潮免费网站| 国产精品亚洲综合一区| 抽搐一进一出gif免费视频| 日本一道综合久久aⅴ免费| 亚洲日本va午夜中文字幕一区| 亚洲国产精品免费视频| 亚洲成a人片在线网站| 免费v片在线观看视频网站| tom影院亚洲国产一区二区| 一区二区三区在线免费观看视频| 国产亚洲色视频在线| 99热这里只有精品6免费| 亚洲成在人线中文字幕| 女人18毛片水最多免费观看| 亚洲中文字幕在线无码一区二区 | 亚洲中文字幕日产乱码高清app| 免费一级毛片在线播放视频免费观看永久 | 在线观看黄片免费入口不卡| 久久久久亚洲av无码专区导航| 波多野结衣免费在线| 香港一级毛片免费看| 亚洲AV成人无码久久精品老人| 国产在线观看麻豆91精品免费 | 亚洲熟妇无码一区二区三区 | 亚洲精品成人无限看| 美女视频黄a视频全免费| 特黄特色大片免费| 亚洲福利一区二区三区| 亚洲国产高清国产拍精品| 亚洲无人区一区二区三区| 国产91精品一区二区麻豆亚洲| 在线观看日本亚洲一区| 无码国产精品一区二区免费I6|