• <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)下載排行

        主站蜘蛛池模板: 18禁超污无遮挡无码免费网站| 黄网站在线播放视频免费观看| 无码精品人妻一区二区三区免费看| 免费国产成人午夜私人影视| 亚洲成aⅴ人片久青草影院按摩| 成人性生交大片免费看无遮挡| 亚洲午夜在线一区| 黄色永久免费网站| 亚洲一级特黄特黄的大片| 青青草a免费线观a| 美女视频黄免费亚洲| 免费无码黄网站在线观看| 激情小说亚洲图片| 综合亚洲伊人午夜网 | 亚洲日本一线产区和二线产区对比 | 久久久久无码精品亚洲日韩| 久久国产精品免费网站| 久久久久亚洲精品无码蜜桃| 18观看免费永久视频| 中文日韩亚洲欧美制服| 国产精品自在自线免费观看| 一级特黄色毛片免费看| 亚洲成AV人片一区二区密柚| 永久在线免费观看| 亚洲精品无码专区| 亚洲日本一区二区一本一道| 暖暖日本免费中文字幕| 亚洲va在线va天堂va手机| 免费又黄又爽又猛的毛片| 色www永久免费网站| 亚洲不卡中文字幕| 午夜亚洲福利在线老司机| 国产免费一区二区三区在线观看| 亚洲春色在线观看| 亚洲国产精品13p| 日韩精品极品视频在线观看免费| 亚洲色大成网站www永久网站| 亚洲日韩aⅴ在线视频| 青青草a免费线观a| 99精品视频在线观看免费| 亚洲国产成人99精品激情在线|