Ist niemand aufgefallen das
rec_ThreadParams auf dem Stack liegt?
Dem Thread wird nur die Adresse von
rec_ThreadParams übergeben. Wenn
prcCheckPaths zurückkehrt ist der Inhalt der Variable undefiniert. Der Thread greift über den Zeiger auf den String zu, der einen weiteren, ungültigen Zeiger enthält: Boom!
Eine schnelle Lösung zum Ausprobieren wäre es,
rec_ThreadParams mal global zu definieren. Ansonsten: Benutze TThread