Einzelnen Beitrag anzeigen

Benutzerbild von qb-tim
qb-tim

Registriert seit: 3. Mär 2006
Ort: Deutschland
280 Beiträge
 
Delphi 6 Professional
 
#1

Probleme mit "SearchRec"s

  Alt 13. Jun 2006, 14:34
Here ist ein Auszug aus einem meiner Programme.

Noch vorab: Es gibt 4 Ebenen: 1. - 3. Ebene NUR Ordner und 4. Ebene NUR ".dat"-Dateien

Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
var SR : TSearchrec;
begin
  if FindFirst('*.*', faAnyFile, SR) = 0 then
    begin
      repeat
        // handelt es sich um ein Verzeichnis?
        if (SR.Attr and faDirectory) = faDirectory then
        begin
          if (SR.Name <> '.') and
             (SR.Name <> '..') then
          ComboBox1.Items.Add(SR.Name);
        end;
      until
        FindNext(SR) <> 0;
      FindClose(SR); // wird benötigt um den Speicher wieder freizugeben
    end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var SR : TSearchrec;
    tmp : String;
begin
  tmp := ComboBox1.Items[ComboBox1.ItemIndex] + '\*.*';
  if FindFirst(tmp, faAnyFile, SR) = 0 then
    begin
      repeat
        // handelt es sich um ein Verzeichnis?
        if (SR.Attr and faDirectory) = faDirectory then
        begin
          if (SR.Name <> '.') and
             (SR.Name <> '..') then
          ComboBox2.Items.Add(SR.Name);
        end;
      until
        FindNext(SR) <> 0;
      FindClose(SR); // wird benötigt um den Speicher wieder freizugeben
    end;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
var SR : TSearchrec;
    tmp : String;
begin
  tmp := ComboBox1.Items[ComboBox1.ItemIndex] + '\' + ComboBox2.Items[ComboBox2.ItemIndex] + '\*.*';
  if FindFirst(tmp, faAnyFile, SR) = 0 then
    begin
      repeat
        // handelt es sich um ein Verzeichnis?
        if (SR.Attr and faDirectory) = faDirectory then
        begin
          if (SR.Name <> '.') and
             (SR.Name <> '..') then
          ComboBox3.Items.Add(SR.Name);
        end;
      until
        FindNext(SR) <> 0;
      FindClose(SR); // wird benötigt um den Speicher wieder freizugeben
    end;
end;
In der ersten Prozedur (OnActivate) funktioniert die auflistung der Vorhandenen Ordner im Ordner der exe-Datei.

Leider passiert bei den anderen zweien nichts. Es werden keine Ordner aufgelistet!
  Mit Zitat antworten Zitat