• <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中接受文件拖放

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

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

        interface

        //用來告訴Windows你的Form可以接受文件拖放
        {$EXTERNALSYM DragAcceptFiles}procedure DragAcceptFiles(hWnd: Cardinal; fAccept: Boolean); stdcall;
        //得到拖放文件名和文件個(gè)數(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;
        //得到拖放的文件個(gè)數(shù)
        function GetDragFileCount(hDrop: Cardinal): Integer;
        //得到拖放的文件名,通過FileIndex來指定文件編號(hào),默認(rèn)為第一個(gè)文件
        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;

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

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

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 亚洲一级片在线观看| 国产大片51精品免费观看| 亚洲色精品vr一区二区三区| 亚洲国产成人综合精品| 毛片免费观看视频| 国产午夜亚洲精品| 好吊妞在线新免费视频| 亚洲av日韩专区在线观看| 在线jlzzjlzz免费播放| 国产精品无码亚洲一区二区三区| 无码国产精品一区二区免费| 亚洲香蕉久久一区二区| 麻豆国产入口在线观看免费| 久久亚洲欧美国产精品| 亚洲精品成人久久久| 国产午夜无码片免费| 亚洲五月六月丁香激情| 一本岛高清v不卡免费一三区| 亚洲熟女综合一区二区三区| 免费一级毛片在线播放| 国产免费内射又粗又爽密桃视频| 日本亚洲视频在线| **真实毛片免费观看| 亚洲国产区男人本色| 亚洲精品线路一在线观看| 成人爽a毛片免费| 亚洲国产情侣一区二区三区| 国产免费131美女视频| 一级毛片不卡免费看老司机| 亚洲av无码一区二区三区乱子伦| 91网站免费观看| 老司机午夜免费视频| 亚洲福利视频导航| AV片在线观看免费| 亚洲精品黄色视频在线观看免费资源 | 日本一区午夜艳熟免费| 亚洲制服丝袜精品久久| 亚洲另类激情专区小说图片| 131美女爱做免费毛片| 特级毛片免费观看视频| 亚洲明星合成图综合区在线|