Einzelnen Beitrag anzeigen

Benutzerbild von qb-tim
qb-tim

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

Re: Probleme mit "SearchRec"s

  Alt 13. Jun 2006, 15:25
Ich habe mein Programm korrigiert:

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.Text + '\*.*';
  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.Text + '\' + ComboBox2.Text + '\*.*';
  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;
Jetzt funktioniert es.

@ SirThornberry:

Mann kann mit "*.*" jede Datei und jeden Ordner suchen. Ein Ordner hat zwar nicht eine "extention" aber es geht eben so. (Wurde mir gesagt). Und es funktioniert!
  Mit Zitat antworten Zitat