• <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级毛片免费视频| 久久WWW免费人成人片| 亚洲视频在线一区二区三区| 在线观看片免费人成视频无码| 亚洲午夜久久久久久噜噜噜| 国产性生大片免费观看性| 亚洲精品成人片在线观看精品字幕| 一区二区三区视频免费观看| 国产成人亚洲影院在线观看| 热久久这里是精品6免费观看| 久久亚洲国产精品一区二区| 最好看最新的中文字幕免费| 亚洲一区二区三区久久| 真实乱视频国产免费观看| 国产精品亚洲综合一区在线观看| 亚洲日韩人妻第一页| 成人网站免费大全日韩国产| 亚洲情a成黄在线观看动漫尤物| **一级毛片免费完整视| 亚洲人成网国产最新在线| 国产午夜无码视频免费网站| sihu国产精品永久免费| 亚洲一区二区三区电影| 野花高清在线电影观看免费视频| 国产精品亚洲精品爽爽| 亚洲成a人片在线观看无码| 无码一区二区三区AV免费| 狠狠热精品免费观看| 亚洲视频国产视频| 亚洲高清偷拍一区二区三区| 中文字幕永久免费视频| 亚洲国产精品成人精品小说| 国产免费观看a大片的网站| 精品一卡2卡三卡4卡免费视频| 久久精品国产亚洲av麻豆图片 | 日日噜噜噜噜夜夜爽亚洲精品| 日本免费一区二区三区 | 国产综合亚洲专区在线| 99久热只有精品视频免费观看17| 亚洲综合色丁香婷婷六月图片|