Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Problem Funktion, die als Rückgabe ein Objekt hat

  Alt 7. Sep 2003, 12:24
Moin Nailor,

ich hab' übrigens gerade einen Fehler in Deinem Source gefunden.

Zu Beginn von FindAllFiles2 wird
Result.AddString(RootFolder); ausgeführt.
Wenn ein gültiger Wert gefunden wird, wird
Result.AddString(RootFolder + SR.Name); und für den Fall, dass SR.Name ein Directory ist, wird FindAllFiles2 mit RootFolder + SR.Name als Rootfolder aufgerufen, wodurch dieses Verzeichnis mit
Result.AddString(RootFolder); ein zweites Mal hinzugefügt wird.
Result.AddString(RootFolder + SR.Name); darf also nur ausgeführt werden, wenn SR.Name kein Verzeichnis ist.

Der Fehler dürfte sein, dass Du zu Beginn der Funktion SubList erzeugst. Genau diese Erzeugte Liste löscht Du am Ende aber nicht, sondern die, die Dir durch den rekursiven Aufruf übergeben wird.
Ersetz mal
SubList := TListOfStrings.Create(100); durch
SubList := nil; Initialisieren musst Du die Variable ja trotzdem.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat