Hi Sven,
Eins vorneweg:
VCL-Dialoge und -Komponenten dürfen nicht innerhalb eines Threads aufgerufen werden.
Zu Deinem Problem: Du merkst Dir im Hauptprogramm, welche Threads gestartet wurden, am Besten mit einer Liste. Im OnTerminate-Ereignis des Threads entfernst der Thread sich selbst aus der Liste. Ist die Liste leer, sind alle Threads abgearbeitet.
Tipp zum Umsetzen:
a) Beschäftige Dich mit der
Unit SyncObjs, und der Klasse 'TCriticalSection'
b) Suche die Klasse TThreadList und verwende sie
Denn wenn mehrere Threads gleichzeitig auf die Liste zugreifen, um sich zu löschen, kommt es garantiert zu Mehrfachzugriffen und damit zu nicht reproduzierbaren Fehlern. Mun muss also Schreibzugriffe auf gemeinsam genutzte Resourcen (hier: die Liste) schützen, sodaß nur ein Thread auf die Liste zugreifen kann...