Die Funktion ist nicht die sauberste, da die
VCL fest integriert ist. Schau dir mal den Link an, den ich oben gepostet habe (Titel: "Beispiel"). Da ist ein Aufruf enthalten, den du dir abändern kannst.
Die Funktion, die du rausgesucht hast, würde man so aufrufen:
FindAllFiles('C:\Dein Pfad\', '*.mp3', true);
Dann müsstest du die Dateinamen noch gesondert überprüfen:
if (SR.Name <> '.') and (SR.Name <> '..') and (Pos('dein Suchstring im Dateinamen', SR.Name) > 0) then