![]() |
Drag&drop mehrerer Dateien nach außen
Halllo!
Ich möchte aus meinem Programm heraus mehrere Dateien (die sich nicht im selben Ordner befinden) in den Explorer (etc.) droppen. Hier findet man ein Beispiel, wie man mehrere Dateien eines Ordners droppen kann: ![]() Hat jemand einen Tip?
Delphi-Quellcode:
function GetFileListDataObject(files: TStringlist): IDataObject;
type PArrayOfPItemIDList = ^TArrayOfPItemIDList; TArrayOfPItemIDList = array[0..0] of PItemIDList; var Malloc : IMalloc; Root : IShellFolder; Folder : IShellFolder; FolderPidl : PItemIDList; p : PArrayOfPItemIDList; chEaten : ULONG; dwAttributes : ULONG; i : Integer; begin Result := nil; if files.Count = 0 then Exit; OleCheck(SHGetMalloc(Malloc)); OleCheck(SHGetDesktopFolder(Root)); // Speicher allokieren p := AllocMem(SizeOf(PItemIDList) * files.Count); for I := 0 to files.Count - 1 do begin OleCheck(Root.ParseDisplayName( 0, nil, PWideChar(WideString(ExtractFilePath(files[i]))), // Ordnername chEaten, FolderPidl, dwAttributes)); OleCheck(Root.BindToObject( FolderPidl, nil, IShellFolder, Pointer(Folder))); OleCheck( folder.ParseDisplayName( 0, nil, PWideChar(WideString(ExtractFilename(files[i]))), // Dateiname chEaten, p^[i], dwAttributes)); end; OleCheck( folder.GetUIObjectOf( 0, files.count, p^[0], IDataObject, nil, Pointer(Result))); for i := 0 to files.Count - 1 do if p^[i] <> nil then Malloc.Free(p^[i]); FreeMem(p); Malloc.Free(FolderPidl); end; |
Re: Drag&drop mehrerer Dateien nach außen
Wo ist jetzt die Frage?
|
Re: Drag&drop mehrerer Dateien nach außen
"Ich möchte aus meinem Programm heraus mehrere Dateien (die sich nicht im selben Ordner befinden) in den Explorer (etc.) droppen"
<> "Hier findet man ein Beispiel, wie man mehrere Dateien EINES Ordners droppen kann..." mit meinem geposteten Code kann ich jeweils nur eine Datei droppen, bei mehreren Dateien bekomme ich die Meldung, dass die Quelle nicht existieren würde... |
Re: Drag&drop mehrerer Dateien nach außen
oder habe ich einfach einen denkfehler:
das man nur mehrere Dateien eines Ordners per Drag&Drop verschieben/kopieren kann, aber nicht mehrere Dateien aus verschiedenen Ordnern? ich habe eine auflistung in einem virtualstringtree und möchte einige dateien und ordner dann gern im explorer ablegen können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz