AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Mehrere Dateien vom Explorer per Drag & Drop in Listbox?
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Dateien vom Explorer per Drag & Drop in Listbox?

Ein Thema von Nicodius · begonnen am 7. Okt 2004 · letzter Beitrag vom 10. Okt 2004
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#11

Re: Mehrere Dateien vom Explorer per Drag & Drop in List

  Alt 9. Okt 2004, 08:53
Hi Nico,

Delphi-Quellcode:
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;
Ich schätze mal, du könntest fie Dateiendung mit Delphi-Referenz durchsuchenExtractFileExt prüfen, und zwar genau da wo der Kommentar ist. Getestet habe ich den Code nicht, deshalb kann ich nicht garantieren, dass es auch funktioniert.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#12

Re: Mehrere Dateien vom Explorer per Drag & Drop in List

  Alt 9. Okt 2004, 08:55
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
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Mehrere Dateien vom Explorer per Drag & Drop in List

  Alt 9. Okt 2004, 08:59
Zitat von Nicodius:
@luckie hast du vl den QT parat?
nein, habe so was noch nie gemacht. Aber steht doch alles in der Code-Lib und hier im Thread. Musst du nur noch zusammensetzten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#14

Re: Mehrere Dateien vom Explorer per Drag & Drop in List

  Alt 9. Okt 2004, 09:06
guten morgen luckie,


ok danke werd schauen ob ichs schaffe sonst : ich wieder hier rein


danke
Nico Müller
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#15

Re: Mehrere Dateien vom Explorer per Drag & Drop in List

  Alt 9. Okt 2004, 13:00
@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
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Mehrere Dateien vom Explorer per Drag & Drop in List

  Alt 9. Okt 2004, 13:52
Och manno, denk doch mal selber etwas nach.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#17

Re: Mehrere Dateien vom Explorer per Drag & Drop in List

  Alt 9. Okt 2004, 13:59
--> 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:
die intelligenz folgte mir doch ich war schneller


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?
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Mehrere Dateien vom Explorer per Drag & Drop in List

  Alt 9. Okt 2004, 14:11
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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#19

Re: Mehrere Dateien vom Explorer per Drag & Drop in List

  Alt 9. Okt 2004, 14:19
ja aber wie finde ich denn heraus wieviele ordner reingezogen werden?
Nico Müller
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#20

Re: Mehrere Dateien vom Explorer per Drag & Drop in List

  Alt 9. Okt 2004, 19:04
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:
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;
und wo muss jetzt was rein? ich hasse meinen Stil
Nico Müller
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz