delphi 實現拖拽開啟檔案

2021-04-20 06:57:23 字數 1093 閱讀 3364

步驟如下,delphi 7測試通過

1、在uses 中增加 shellapi

2、增加拖拽的訊息處理函式

//宣告

protected

procedure wmdropfiles(var msg : tmessage); message wm_dropfiles;

//實現

procedure tform1.wmdropfiles(var msg: tmessage);

var a : integer;

buffer: array[0..255] of char;

begin

a := dragqueryfile(msg.wparam, $ffffffff, buffer, 255);

for a := 0

to a - 1

dobegin

//處理選擇多個檔案

dragqueryfile(msg.wparam, a, buffer, 255);

//檔名就在buffer裡面了,

showmessage(buffer);

end;

dragfinish(msg.wparam);

end;

3、指定接收拖拽的視窗控制代碼

procedure tform1.formcreate(sender: tobject);

begin

dragacceptfiles(handle, true);//使視窗控制代碼可以接收拖拽操作

end;

說明:上面**可以使視窗的任何部位都可以接收拖拽檔案,包含選單、按鈕、工具條等,photo shop就是視窗的任何部分都可以接收拖拽檔案。可以修改formcreate中的

dragacceptfiles(handle, true)函式的第乙個引數,這樣可以指定乙個小的區域來接收拖拽檔案,比如乙個listbox或memo等,這時需要修改

procedure

wmdropfiles(

var msg : tmessage); message wm_dropfiles; 因為該函式只是處理視窗的拖拽事件,而不處理子視窗的拖拽事件,乙個變通的方式是做乙個能夠處理所有訊息的函式,然後從中過濾出拖拽事件。

win32 API實現檔案拖拽開啟

在windows中,我們開啟乙個文字檔案後,可以將另乙個文字檔案拖拽進來,從而實現開啟此檔案。那麼這個功能是怎麼實現的呢?經過一下午的實踐,現將具體 分享如下 include define id edit 1 lresult callback wndproc hwnd,uint,wparam,lpa...

讓自己的軟體實現拖拽開啟檔案

讓自己的軟體實現拖拽開啟檔案 宣告 protected procedure wmdropfiles var msg tmessage message wm dropfiles 實現 procedure tformmain.wmdropfiles var msg tmessage var i,n in...

wxpython實現檔案拖拽

我想讓wx.grid裡面的單元格能夠支援檔案拖拽,實現起來挺簡單的,共分3步 1 建立乙個wx.filedroptarget子類的物件,並把要支援拖拽的控制項傳給它的建構函式,此處是grid 2 呼叫grid的setdroptarget函式,並將第1步建立的wx.filedroptarget子類物件...