Распишу тогда, что в итоге сделал и за одно скажите, насколько так безопасно.
Создаем таймер в потоке поиска, если нашлии
Код:
SetTimer(MForm.Handle,.ID,fTime,nil);
В момент таймера Меняем пропети потока и передаем элемент, который "отсчитался":
Код:
procedure TMForm.WMTimer(var Msg: TWMTimer);
begin
Search.OnTimeElemt:=Msg.TimerID;
Search.OnTime:=True;
Msg.Result:=0;
//KillTimer(Handle,Msg.TimerID);
inherited
end;
В обработчике как то так:
Код:
procedure TFindeer.SetOnTime(const Value: Boolean);
begin
if fOnTime <> Value then fOnTime := Value;
if fOnTime then
Synchronize(Kill);
end;
procedure TFindeer.kill;
begin
{here kill some object and killtimmer}
//сброс флагов
fONTime:=False;
fElement:=-1;