Wenn du FreeOnTerminate setzt, darfst du den TThread nicht in eine Variable (Thread1) speichern. Denn da du nicht weißt wann dieser freigegeben wird, darfst du auch nicht mehr darauf zugreifen.
Wenn du den Thread später noch ansprechen möchtest, darfst du FreeOnTerminate nicht setzen.
Wiebitte? Wie soll er denn bitte erzeugen,
FreeOnTerminate
setzen und starten, ohne den Thread zwischenzuspeichern? Das ginge, wenn überhaupt, nur noch entweder im
Execute
(was unsauber wäre) oder mit einem
with
(ebenso). Prinzipiell kannst du ihn ja in so vielen Variablen speichern, wie du lustig bist. Du darfst/solltest nur nach dem Starten der Ausführung nicht mehr auf mehr auf das Objekt ohne
try
zugreifen, sofern
FreeOnTerminate
gesetzt wurde. Davor jedoch kannst du so viel an dem Ding rumspielen wie es dir danach verlangt.