FindClose darfst du erst am Ende aufrufen, nicht nach jedem FindNext. Damit brichst du die Suche ab indem du die Ressourcen für den Suchvorgang freigibst.
Außerdem ignorierst du den Rückgabewert von FindFirst.
Hier findest du ein korrektes Beispiel:
http://www.delphibasics.co.uk/RTL.asp?Name=findfirst