Moin Hipp0,
Du ergänzt die Parameterliste Deiner Methode um einen Parameter:
Delphi-Quellcode:
// statt
procedure TForm1.GetFilesInDirectory(ADirectory: string; AMask: String; AList: TStrings; ARekursiv: Boolean);
// einfach
procedure TForm1.GetFilesInDirectory(ADirectory: string; AMask: String; AList: TStrings; ARekursiv: Boolean;var suchtiefe : integer);
Beim ersten Aufruf wird dann, z.B. 1 übergeben, beim nächsten um 1 erhöht usw.
Dann weiss jede Rekursionstiefe, wie tief sie ist.
Hmm...
Wenn man es genau nimmt, brauchst Du nicht einmal einen var-Parameter:
procedure TForm1.GetFilesInDirectory(ADirectory: string; AMask: String; AList: TStrings; ARekursiv: Boolean;const suchtiefe : integer);
genügt eigentlich.
Es muss dann nur immer
GetFilesInDirectory(.......,Suchtiefe+1);
übergeben werden.
Hast Du dann gewünschte Limit erreicht, verlässt Du die Routine einfach gleich wieder, oder rufst sie gar nicht erst auf (was wohl sinnvoller wäre).
Durch einen weiteren Parameter kannst Du dann auch noch bestimmen, wo die Grenze liegen soll. Das würde die Methode noch flexibler machen.