Einzelnen Beitrag anzeigen

black_hawk

Registriert seit: 16. Mai 2005
Ort: Worin
14 Beiträge
 
Delphi 2005 Professional
 
#1

Ordnerinhalte in Listbox auflisten

  Alt 24. Jun 2005, 20:53
Moin, nicht hauen wegen dem Titel. Wie man Dateien aus einem Ordner in einer Listbox anzeigt weiss ich nun schon. Ich wusste nur nicht wie ich es beschreiben soll...

Also, mein Problem: Ich habe eine ComboBox die ich über eine Ini-Datei füttere. In der Ini-Datei sind die Einträge für die Combobox und eine Verzeichnisangabe mit diesem Schema:

[aaa]
Description=Test1
Directory=C:\Test
[bbb]
Description=Test2
Directory=D:\Hallo

In der ComboBox wird nun z.B. Test1 ausgewählt und nun möchte ich mir den Inhalt (evtl. nur bestimmte Formate) in einer Listbox anzeigen lassen. Ich habe schon eine Dateisuche. Ich weiss allerdings nicht wie ich das hinbekomme, das ich nicht mehr in einem festen Verzeichnis suche, sonder in dem Verzeichnis was über die ComboBox ausgewählt wurde.

Hoffe die Frage ist einigermaßen Verständlich.

Hier mal der Quelltext den ich zum Durchsuchen nehme:

Delphi-Quellcode:
procedure GetFilesinDirectory(Directory: String; const Mask: String;
          List: TStrings; WithSubDirs, ClearList: Boolean);

procedure ScanDir(const Directory: String);
var
  SR: TSearchRec;
begin
  if FindFirst(Directory + Mask, faAnyFile - faDirectory, SR) = 0 then try
    repeat
      List.Add(Directory + SR.Name)
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;

  if WithSubDirs then begin
    if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then try
      repeat
        if (SR.Attr = faDirectory) and
           (SR.Name <> '.') and (SR.Name <> '..') then
          ScanDir(Directory + SR.Name + '\');
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  end;
end;

begin
  List.BeginUpdate;
  try
      if ClearList then
         List.Clear;
      if Directory = 'then Exit;
      if Directory[Length(Directory)] <> '\then
         Directory := Directory + '\';
      ScanDir(Directory);
  finally
    List.EndUpdate;
  end;
end;
Hiermit rufe ich bis jetzt die Suche auf. Könnte aber auch gleich eingelesen werden wenn ich auf einen ComboBox-Eintrag klicke.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var F: TSearchRec;
var I: Integer;
begin
  GetFilesInDirectory('C:\DelphiTestverzeichnis', '*.avi*', ListBox1.Items, True, True);
    if FindFirst('C:\DelphiTestverzeichnis', faAnyFile, F) = 0 then try
      Edit1.Text := F.Name;
    finally
      FindClose(F)
  end;
Für Tipps wäre ich sehr Dankbar!

mfg black_hawk

[edit=alcaeus]code- durch delphi-Tags ersetzt. In Zukunft bitte die richtigen Tags verwenden. Mfg, alcaeus[/edit]
  Mit Zitat antworten Zitat