![]() |
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
*push* nicht sauer sein luckie :P
|
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
Hi,
ich hab dir mal eben was gebastelt:
Delphi-Quellcode:
Ist ungetestet, sollte aber, so hoffe ich, funktionieren.
function IsDirectory(Dir: WideString): Boolean;
var F: TWin32FindDataW; Handle: HWnd; begin Handle := FindFirstFileW(PWideChar(Dir), F); if Handle <> INVALID_HANDLE_VALUE then begin Result := ((f.dwFileAttributes and faDirectory) = faDirectory); Windows.FindClose(Handle); end else Result := False; end; procedure FindAllFiles(var FileList: TStrings; RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True); var SR: TSearchRec; begin if AnsiLastChar(RootFolder)^ <> '\' then RootFolder := RootFolder + '\'; if Recurse then if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory = faDirectory then // --> ein Verzeichnis wurde gefunden // der Verzeichnisname steht in SR.Name // der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist // RootFolder + SR.Name if (SR.Name <> '.') and (SR.Name <> '..') then FindAllFiles(FileList, RootFolder + SR.Name, Mask, Recurse); until FindNext(SR) <> 0; finally FindClose(SR); end; if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory <> faDirectory then begin // --> eine Datei wurde gefunden // der Dateiname steht in SR.Name // der vollständige Dateiname (inkl. Pfadangabe) ist // RootFolder + SR.Name FileList.Add(RootFolder + SR.Name); end; until FindNext(SR) <> 0; finally FindClose(SR); end; end; procedure TForm1.WMDROPFILE(var msg: TMessage); var LCount, Lanzahl, Lsize: integer; LDateiname: PChar; List: TStringList; i: Integer; begin LDateiname := ''; Lanzahl := DragQueryFile(Msg.WParam, $FFFFFFFF, LDateiname, 255); for LCount := 0 to (Lanzahl - 1) do begin Lsize := DragQueryFile(Msg.WParam, LCount, nil, 0) + 1; LDateiname := StrAlloc(Lsize); DragQueryFile(Msg.WParam, LCount, LDateiname, Lsize); List := TStringList.Create; try if IsDirectory(String(LDateiName)) then FindAllFiles(List, String(LDateiName)) else List.Add(String(LDateiName)); for i := 0 to List.Count-1 do If (ExtractFileExt(AnsiLowerCase(List[i])) = '.ico') or (ExtractFileExt(AnsiLowerCase(List[i])) = '.bmp') or (ExtractFileExt(AnsiLowerCase(List[i])) = '.jpg') or (ExtractFileExt(AnsiLowerCase(List[i])) = '.jpeg') then Listbox1.Items.add(List[i]); finally List.Free; end; // do Something with "LDateiname" StrDispose(LDateiname); end; // FDropProc(LFileList); DragFinish(Msg.WParam); end; mfG mirage228 |
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
Liste der Anhänge anzeigen (Anzahl: 1)
nee geht nid .... siehe anhang ;) das kommt nacher danke trotzdem
|
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
Hi,
da warn kleiner Fehler:
Delphi-Quellcode:
muss es heissen.
Listbox1.Items.add(List[i]);
mfG mirage228 |
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
wohin damit?
|
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
Zitat:
Delphi-Quellcode:
mfG
for i := 0 to List.Count-1 do
If (ExtractFileExt(AnsiLowerCase(List[i])) = '.ico') or (ExtractFileExt(AnsiLowerCase(List[i])) = '.bmp') or (ExtractFileExt(AnsiLowerCase(List[i])) = '.jpg') or (ExtractFileExt(AnsiLowerCase(List[i])) = '.jpeg') then Listbox1.Items.add(List[i]); mirage228 |
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
DAAAAAAAAAAAAAAAAAAAAAAAAAAAANNNNNNNNNNNKKKKKKKKKK KKKKEEEEEe
so viel geholfen DANKE mirage228!!! das macht ja gleich alle fragen aufeinmal dein CODE DANKEE! *umarm* |
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
Zitat:
mfG mirage228 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 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