Zitat:
while CalSyncThread.running do begin ---------> An dieser Stelle kommt ab und zu eine Schutzverletzung aber nicht immer.
War das vor oder nach?
[edit] vor der Änderung und nicht vor der Zeile
Zitat:
calSyncThread.FreeOnTerminate := False; // 11.03.2017 WL
Davor ist klar, wenn der Thread sich inzwischen schon freigegeben hat.
Bei FreeOnTerminate=True darf man nie wieder von außerhalb auf das Threadobjekt zugreifen, außer im OnTerminate oder im Thread.