日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

在Delphi中接受文件拖放

在Delphi中接受文件拖放

更新時間:2022-05-16 文章作者:未知 信息來源:網絡 閱讀次數:

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

interface

//用來告訴Windows你的Form可以接受文件拖放
{$EXTERNALSYM DragAcceptFiles}procedure DragAcceptFiles(hWnd: Cardinal; fAccept: Boolean); stdcall;
//得到拖放文件名和文件個數的API
{$EXTERNALSYM DragQueryFile}
function DragQueryFile(hDrop: Cardinal; iFile: Cardinal; lpszFile: PChar; cch: Integer): Integer; stdcall;
//釋放Windows分配給拖放操作的內存
{$EXTERNALSYM DragFinish}
procedure DragFinish(hDrop: Cardinal); stdcall;
//得到拖放的文件個數
function GetDragFileCount(hDrop: Cardinal): Integer;
//得到拖放的文件名,通過FileIndex來指定文件編號,默認為第一個文件
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;

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

當然,要在Form的Unit上面加上
uses untDrag;

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

本類教程下載

系統下載排行

主站蜘蛛池模板: 成在线人免费视频 | 91精品国产综合久久欧美 | 亚洲成 人a影院青久在线观看 | 中文字幕午夜乱理片11111 | 欧美精品日日鲁夜夜 | 国产亚洲视频在线观看 | 在线免费中文字幕 | 91se在线看片国产免费观看 | 午夜国产亚洲精品一区 | www.九色| 日韩成人免费一级毛片 | 欧美大片日韩精品 | 天天射天天射天天干 | 日韩欧美天堂 | 久久久久99这里有精品10 | 午夜视频网站在线观看 | 天天做天天爱天天做天天吃中 | 欧美高清在线精品一区 | 伊人久久大香线蕉综合影 | 亚洲精品国产一区二区三区在 | 国产欧美在线观看不卡一 | 国产精品一二三区 | 美女毛片大全 | 狠狠操欧美 | 久久亚洲国产欧洲精品一 | 国产禁女女网站免费看 | 亚洲精品一区二区三区四 | 欧美在线视频精品 | 欧美激情中文字幕综合一区 | 国产精品毛片在线大全 | 亚洲欧美日韩在线不卡 | 91短视频在线高清hd | 99国产精品国产精品 | 就草草在线观看视频 | 亚洲欧洲尹人香蕉综合 | 久久98精品久久久久久婷婷 | 天天做天天爱夜夜大爽完整 | 久久久久久草 | 欧美男男的同性videos | 久久精品欧美一区二区 | 日本wwwwwxxxxx|