tlistview使用--拖放操作 (轉)
下列是本人在開發過程中根據操作上的方便,寫的一個小過程,主要實現了向listview中拖放功能,其如下:
procedure tyanzheng.AppMessage(var Msg: TMsg;var Handled: Boolean);
var
nFiles, I: Integer;
ListItem: TListItem;
begin
if (Msg.message = WM_DROPFILES) and (msg.hwnd = ListView1.Handle) then
begin
if MessageDlg('確定要加入嗎',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
// 取dropped files的數量
nFiles := DragQueryFile (Msg.wParam, $FFFFFFFF, nil, 0);
// 迴圈取每個拖下檔案的全檔名
try
for I := 0 to nFiles - 1 do
begin
// 為檔名分配緩衝 allocate memory
SetLength (Filename, 80);
// 取檔名 read the file name
DragQueryFile (Msg.wParam, I, PChar (Filename), 80);
Filename := PChar (Filename);
//將全檔名分解程檔名和路徑
ListItem := ListView1.Items.Add;
ListItem.Caption := ExtractFileName(FileName);
listitem.ImageIndex:=6;
ListItem.SubItems.Add(ExtractFilePath(FileName));
filepath:=extractfilepath(filename);
//drage:=true;
end;
finally
//結束這次拖放操作
DragFinish (Msg.wParam);
end;
//標識已處理了這條訊息
Handled := True;
movefile(pchar(filename),pchar(filespath+listitem.caption));
end;end;
end;
注意:本程式功能是完整的,程式中使用了movefile,也就是說,實現了把操作的檔案移到了所在的目錄中,因此建議在過程中不要用重要的檔案作除錯用。
程式中用到了向傳送訊息,不明白的話,建議看一些有關方面的文章(本程式可直接執行,須加入到系統中),本程式與《tlistview顯示資料夾內容中的程式結合使用,效果更好》
程式用在showform事件中:用法如下:
//設定需要處理檔案WM_DROPFILES拖放訊息
DragAcceptFiles(ListView1.Handle, TRUE);
//設定AppMessage過程來捕獲所有訊息
Application.OnMessage := AppMessage;
謝謝支援
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-982091/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- TListView元件使用方法 (轉)View元件
- 也談TTreeView、TListView用法一二 (轉)View
- javascript的拖放入門(轉)JavaScript
- TListView元件顯示資料夾中的檔案 (轉)View元件
- 使用IDropTarget介面同時支援文字和檔案拖放 (轉)
- Jetpack DragAndDrop 庫——拖放操作如此輕鬆!Jetpack
- 使用VB實現OLE拖放功能
- 自制支援檔案拖放的VCL元件 (轉)元件
- Blazor 使用拖放(drag and drop)上傳檔案Blazor
- HTML 5 拖放HTML
- HTML5 進階系列:拖放 API 實現拖放排序HTMLAPI排序
- HTML5 拖放HTML
- HTML5拖放HTML
- 玩轉iOS開發:iOS 11 新特性《高階拖放》iOS
- 玩轉iOS開發:iOS 11 新特性《UICollectionView的拖放》iOSUIView
- 實現檔案拖放的一種簡潔方法 (轉)
- chrome下的拖放事件Chrome事件
- H5 元素拖放H5
- HTML5 拖放、交換位置HTML
- Html5的拖放功能HTML
- 【轉】C++ map的基本操作和使用C++
- dnd.js 拖放庫 Drag and DropJS
- 拖放排序外掛Sortable.js排序JS
- 指令碼div實現拖放功能指令碼
- HTML5 拖放(Drag和drop)HTML
- HTML5拖放本地資源HTML
- 如何在對in操作使用變數繫結(轉)變數
- 使用元件封裝資料庫操作(二) (轉)元件封裝資料庫
- 使用元件封裝資料庫操作(一) (轉)元件封裝資料庫
- Blazor 拖放上傳檔案轉換格式並推送到瀏覽器下載Blazor瀏覽器
- 拖放事件(自己的學習筆記)事件筆記
- HTML5 drag & drop 拖拽與拖放HTML
- Yoink for Mac(臨時檔案拖放助手)Mac
- HTML5學習筆記 拖放HTML筆記
- javascript實現拖曳與拖放圖片JavaScript
- [譯] 使用 React 和 ImmutableJS 構建一個拖放佈局構建器ReactJS
- MapObject控制元件的使用之圖層操作 (轉)Object控制元件
- 操作IIS (轉)