Здравствуйте, как можно сделать, что бы при старте потока проверялось, если он существует, то уничтожить его и запустить снова.
Пробовал так:
Сам поток (лежит на модуле формы)
	Код:
	  type
  thread = class(tthread)
  private
  procedure create;
  procedure load;
  procedure show;
  procedure resiz;
  public
  procedure execute; override;
  end;
 
 
Выполнение
	Код:
	procedure thread.Execute;
begin
load;
synchronize(create);
sleep(50);
synchronize(show);
sleep(50);
if str=true then synchronize(resiz);
pot:=nil;
end;
 
 
Запуск
	Код:
	if pot<>nil then
begin
pot.Terminate;
pot:=nil;
end;
pot:=thread.Create(true);
pot.FreeOnTerminate:=true;
pot.Priority:=tpnormal;
pot.Resume;
 
 
И если много раз  запустить его, то он не уничтожается. А т.к. поток работает с компонентами на форме, происходит AV.
Даже проверял, убирал все процедуры, кроме одной, в ней писал:
memo....add('поток запущен');
sleep(5000);
memo....add('поток завершён');
Нажимал быстро раз 10 на кнопку, которая запускает поток, и через пять секунд в мемо десять раз написало "поток завершён"
Помогите пожалуйста. Поиск не помог, почти все темы про Terminate, а как на писать условие нигде нет.