Jetzt waere es noch ideal, wenn du dazuschreiben wuerdest, unter welchen Lizenzbedingungen dein Code benutzt wird. Ansonsten, alles in allem gute Arbeit!

... obwohl ich persoenlich die eigentlichen "Arbeitstiere" der
Unit in eine Include-Datei oder separate
Unit ausgelagert und hier gepostet haette
Fragen, hmmm?! Woher kommt die
Unit ProcessInfo, bzw. woher bekommt sie der Nutzer deines Codes?
Hinweis: "Application.ProcessMessages" solltest du moeglichst vermeiden, da es deinen Code unflexibel macht.
Lob: Gut auskommentiert. Ich muss sagen, dass mich das besonders begeistert, obwohl ich nicht weiss wie neu du bist. Aber Respekt. Wuerden alle ihren Code so kommentieren, waere Legacy-Code nie wieder ein Problem.