используй флаг (Boolean переменная) прерывания потока для цикла. TerminateThread не используй никогда. EndThread должна находиться в функции потока - после нее поток (выполнение функции потока) завершается.
не обращайся напрямую к VCL объектам из потока, критические секции тут не помогут. обращаться к ним можно только из основного потока. смотри этот механизм у TThread или сразу используй его.
__________________
Пишу программы за еду.
__________________
|