Zitat:
Vorallem habe ich ja nur einen Befehl in meinem code, der rest überniehmt dann die componente!!
... und diese Komponente braucht aber sehr lange und friert dann das Fenster ein.
Einfach die Komp. TJvThread auf das Formular ziehen und den Aufruf der anderen Komponente in TJvThread.OnExecute reinschreiben.
Zum Starten rufst du dann TJvThread.Execute auf.
Der Event OnBegin informiert Dich, dass der Thread gestartet wurde.
OnFinish bzw. OnFinishAll informiert Dich (das Programm), dass der Thread beendet ist.
Eigentlich alles wie gehabt, nur das Fenster friert nicht mehr ein.
Aber du musst noch abfangen, wenn das Programm einfach so beendet wird, bevor der Thread fertig ist.
Entweder Du hast die Möglichkeit der Komp. das mitzuteilen (hallo, mach mal Schluss), oder du verhinderst das Beenden solange bis OnFinish/OnFinishAll gekommen ist.
Als weitere Möglichkeit bietet sich auch an (vor allem auf Mehr-CPU-Systemen) die Berechnung von mehreren Dateien parallel zu verarbeiten, dann nutzt du auch alle CPUs aus und nicht nur eine.
Ich werde morgen mal sehen und dort eine Thread-Version reinstellen ... alte Menschen müssen jetzt schlafen