Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#6

Re: [Threads] In Windowthread pollen

  Alt 21. Mär 2008, 08:26
Nein SearchDir gibt nichts zurück. Und soll auch nur einmal aufgerufen werden (is rekrusiv).
Und warum soll ein Thread "suspenden", nachdem eine Schleife ausgeführt wurde?

Das ist SearchDir (auch mit einer Schleife!):
Delphi-Quellcode:
procedure TSearchThread.SearchDir(const APath : string; const AParent : TDelphiDirectory);
var
  sr : TSearchRec;
  df : TDelphiFile;
begin
  AParent.DeleteEnabled := false;
  if FindFirst(APath + '*.*', faAnyFile, sr) = 0 then
  begin
    try
      repeat
        {$WARN UNIT_PLATFORM OFF}
        if (sr.Name <> '.') and (sr.Name <> '..') and ((sr.Attr and faSysFile) <> faSysFile) then
        {$WARN UNIT_PLATFORM ON}
        begin
          if (sr.Attr and faDirectory) = faDirectory then
          begin
            df := AParent.Add(sr.Name, false);
            df.DeleteEnabled := FDeleteFolders;
            df.SetDeletionCount(@FDeletionCount);
            df.OnDelete := FDeleteEvent;
            SearchDir(APath + sr.Name + '\', (df as TDelphiDirectory));
          end
          else
          begin
            with AParent.Add(sr.Name, true) do
            begin
              DeleteEnabled := not IsFileFiltered(sr.Name);
              SetDeletionCount(@FDeletionCount);
              OnDelete := FDeleteEvent;
            end;
            SetFile(sr.Name);
          end;
        end;
      until (FindNext(sr) <> 0) or (Breaked);
    finally
      FindClose(sr);
    end;
  end;
end;
MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat