Du scannst ja doppelt. Fasse doch die beiden Suchschleifen zusammen, ala Pseudo-
Code:
dirs := TstringList.create ...
Findfirst ...
repeat
if verzeichnis then dirs.add ... else Rueckgabe.add ...
until findnext ...;
for i := 0 to dirs.count -1 do DurchsucheDir;