Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как остановить длинный цикл извне

2.5K
04 декабря 2002 года
boblen
2 / / 04.12.2002
Имеется длинный цикл из 10000 повторений, длящийся около 4 минут, как прервать его выполнение, щелкнув на кнопке.
2.1K
04 декабря 2002 года
Relort
24 / / 30.11.2002
Кажется так:

В цикле вставь строку на подобии
Application->ProcessMessage() или
Application->ProcessMessages() (не помню точно, проверь по помощи).
Смысл в том, что приложение продолжает отработку сообщений.
А по нажатию на кнопку завершай цикл.
2.0K
04 декабря 2002 года
Tristan
27 / / 17.10.2002
Цикл закончится при нажатии Esc

STOP=false;

for(;;)
{Application->ProcessMessages();
if(STOP) break;



}


void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key, ShiftState Shift)
{
if(Key==VK_ESCAPE) STOP=true;
}

3
04 декабря 2002 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by Tristan
Цикл закончится при нажатии Esc

STOP=false;

for(;;)
{Application->ProcessMessages();
if(STOP) break;



}


void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key, ShiftState Shift)
{
if(Key==VK_ESCAPE) STOP=true;
}



Советую цикл создавать в отдельном потоке, это грамотнее, безопаснее и эффективнее.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог