Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Timer


Автор: Max_7 10.8.2005, 05:27
Всех приветствую.

Как по сигналу от Таймера внешне прекратить выполнение процедуры.

Спасибо.

Автор: vadims 10.8.2005, 05:59
Наверное надо завести внешний флаг например

bool continueProc = true;

в теле программы постоянно его проверять

while( ... )
{
if ( !continueProc )
return;
....
}

А в обработчике таймера

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
continueProc =false;
}



Автор: Петрович 10.8.2005, 06:58
Не поможет.
Таймер обрабатывается как сообщение окну. А пока идет выполнение процедуры, сообщения не обрабатываются.
Можно конечно воспользоваться Application.ProcessMessage, но, надо учитывать его нюансы.
Правильнее, длительные действия выносить в отдельные потоки.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)