Показать сообщение отдельно
  #12  
Старый 02.05.2017, 09:30
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Распишу тогда, что в итоге сделал и за одно скажите, насколько так безопасно.
Создаем таймер в потоке поиска, если нашлии
Код:
      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;
Ответить с цитированием