|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.10.2006, 10:42 | #1 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,597
|
как корректно остановить цикл.
перенесено со старого форума. сообщение от Gigan.
Здравствуйте!! Проблема такого плана, запускаю программу на выполнение, а в ней присутствует затянувшийся цикл, и иногда возникает потребность прервать его, нажатием какой-то кнопочки, например «Стоп», как это корректно реализовать, чтоб программа не закрылась? Спасибо!!! перенесено со старого форума. сообщение от bllem. Попробуй создать какую-нибуть левую глобальную переменную... Например типа boolean... В самом начале цикла должна проверяться эта переменная... Если в ней произошли изменения например значение стало "true" - значит можна вызывать Break... Надеюсь ты понял что значение переменой меняется по нажатию кнопки... Только не забуть в начале цикла написать "Application.ProcessMessages;", так как программа просто при выполнении цикла будет наглухо висеть!!! ------------------------------------ Попробую показать на примере пример: var Stop: boolean; //Глобальная переменная procedure Name; begin Stop:= false; while *** do begin Application.ProcessMessages; if Stop = false then begin //Тело цикла end else Break; end; end; procedure Button1.Click; begin Stop:= true; end; ------------------------------------ перенесено со старого форума. сообщение от Virtson. все правильно, только эта Boolean переменная теперь совсем не левая procedure Name; begin Stop:= false; while *** do begin Application.ProcessMessages; if Stop then Break; //Тело цикла end; // завершающие действия - в данном случае выполняются // если вместо Break написать Exit -> не выполнятся end; всем удачи ! перенесено со старого форума. сообщение от Gigan. Огромное спасибо все получилось! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как остановить поток? | Никки | Win Api | 3 | 06.12.2007 22:04 |
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) | Mr.User | Помощь студентам | 9 | 23.11.2007 01:34 |
Как корректно завершить цикл? | Iren | Microsoft Office Excel | 4 | 02.11.2007 09:58 |
Как остановить цикл без Application.ProcessMessages | Alar | Общие вопросы Delphi | 0 | 29.10.2006 20:18 |