![]() |
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
Hi Nico,
Delphi-Quellcode:
Ich schätze mal, du könntest fie Dateiendung mit
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); // do Something with "LDateiname" StrDispose(LDateiname); end; ![]() Greetz alcaeus |
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
DANKE ES GEHT jetzt
@alcaeus danke, nicht gesehen dass das mit dem LDateiname in der Schleife war ;) danke! aber wie mach ich das noch mit dem ordner reinziehen und filtern.. Kommda nicht mit dem code zusammen @luckie hast du vl den QT parat? mfg Nicodius |
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
Zitat:
|
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
guten morgen luckie,
ok danke werd schauen ob ichs schaffe sonst : :coder: ich wieder hier rein danke ;) |
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
@Luckie --> wie mach ich das jetzt
Delphi-Quellcode:
procedure FindAllFiles(var FileList: TStrings; RootFolder: string; Mask: string =
'*.*'; Recurse: Boolean = True); --> hmm wenn ich jetzt zwei ordner reinziehe? HILFE ;) :spin: |
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
Och manno, denk doch mal selber etwas nach.
|
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
--> ich versteh nicht wie ich das in meinem code umsetze .... übrigens du bist um 15 jahre älter
du hast mehr erfahrung etc du kannst mich nicht mit dir vergleichen ;) hmmm ... schnell mal nen spruch von nem Dp-User Zitat:
ich weiß nicht wie ich das jetz tmachen soll ... mein code:
Delphi-Quellcode:
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;
Delphi-Quellcode:
procedure TForm1.WMDROPFILE(var msg: TMessage);
var LCount, Lanzahl, Lsize: integer; LDateiname: PChar; 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); if (ExtractFileExt(lowercase(string(LDateiname))) = '.ico') or (ExtractFileExt(lowercase(string(LDateiname))) = '.bmp') or (ExtractFileExt(lowercase(string(LDateiname))) = '.jpg') or (ExtractFileExt(lowercase(string(LDateiname))) = '.jpeg') then Listbox1.Items.add((string(LDateiname))); StrDispose(LDateiname); end; // FDropProc(LFileList); DragFinish(Msg.WParam); { If (ExtractFileExt(lowercase(String(fname))) = '.bmp') or (ExtractFileExt(lowercase(String(fname))) = '.jpg') or (ExtractFileExt(lowercase(String(fname))) = '.jpeg') then Listbox1.Items.add((String(fName)));} end; und was dann? |
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
Na da, wo du nach dem Ziehen deine Odner zur Verfügung hast, rufst du FindAllFiles eben auf und zwar so oft, wie du Ordner hast. Das hasst du doch schon alles mit den Dateien gemacht, nur dass du da eben Listbox1.Add() geschrieben hast. Ist es denn jetzt so schwer da FiindAllFiles hinzuschreiben?
|
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
ja aber wie finde ich denn heraus wieviele ordner reingezogen werden?
|
Re: Mehrere Dateien vom Explorer per Drag & Drop in List
mein Quelltext
Delphi-Quellcode:
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;
Delphi-Quellcode:
und wo muss jetzt was rein? :cry: ich hasse meinen Stil ;)
procedure TForm1.WMDROPFILE(var msg: TMessage);
var LCount, Lanzahl, Lsize: integer; LDateiname: PChar; 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); If (ExtractFileExt(lowercase(String(Ldateiname))) = '.ico') or (ExtractFileExt(lowercase(String(Ldateiname))) = '.bmp') or (ExtractFileExt(lowercase(String(Ldateiname))) = '.jpg') or (ExtractFileExt(lowercase(String(Ldateiname))) = '.jpeg') then Listbox1.Items.add(String(Ldateiname)); // do Something with "LDateiname" StrDispose(LDateiname); end; // FDropProc(LFileList); DragFinish(Msg.WParam); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:50 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