Einzelnen Beitrag anzeigen

Heinziheinz

Registriert seit: 13. Apr 2011
28 Beiträge
 
#1

progressbar/dateien

  Alt 13. Apr 2011, 23:02
hi leute ich habe einen code zusammengebastelt der mir erlaubt auf meinem pc mittels FindAllfiles rekursiv nach datein zu suchen, die links der gefundenen dateien werden bei mir in einer combobox ausgegeben und ich möchte diesen vorgang gerne entweder in einer progressbar darstellen oder zumindest den fortschritt angezeigt bekommen wie viele dateien schon gefunden wurden wobei ich das finden der dateien life miterleben will. ich möchte nicht nur das endergebnis wissen wie viele datein gefunden wurde, sondern beim programmlauf sehen dass die zahl der gefundenen dateien größer wird.über eine der beiden mögligkeiten würd ich mich freuen am besten natürlich über beide. Ich bin noch ein programmieranfänger deshalb wäre ein codeschnipsel nicht schlecht. am besten gleich mit erklärung wie ich das auszuführen habe und welche sachen ich dafür brauch

delphi code:


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 and not faDirectory, SR) = 0 then try
    repeat
    counter := counter +1;
      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 and faDirectory) = 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;


{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
  GetFilesInDirectory(edit1.text, '*.'+edit2.text, Listbox1.Items, checkbox1.Checked, True);
  if counter >1 then
  begin
  label1.caption := 'Es wurden '+inttostr(counter)+' '+edit2.text+' Dateien gefunden.';
  end
  else
  label1.caption := 'Es wurde '+inttostr(counter)+' '+edit2.text+' Datei gefunden.';
  counter:=0;
end;

Geändert von mkinzler (14. Apr 2011 um 07:56 Uhr) Grund: Delphi-Tag eingefügt