Einzelnen Beitrag anzeigen

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