oder du gibst wirklich eine TStringList zurück, machst also eine function draus.
Bloß nicht. Objekte zurückzugeben ist so ungefähr der schlechteste Programmierstil, den es gibt...
Warum hat DeddyH ja schon geschrieben (danke roter Kasten
).
Die Deklaration als var-Parameter macht auch keinen Sinn, wie BlackSeven schon korrigiert hat. Wenn man dann wie Dalai geschrieben hat, die Reihenfolge ändert und zusätzlich aus TStringList die allgemeinere Elternklasse TStrings macht (um direkt z.B. die Items einer ListBox übergeben zu können usw.), sieht das so aus:
Delphi-Quellcode:
procedure FindAllFolders(const ADirList: TStrings; const ARootFolder: string; const AMask: string = '*.*'; ARecurse: Boolean = True);
begin
...
// EDIT:
Nebenbei: Wozu übergibst du die Maske, wenn du sie ohnehin nicht nutzt?