Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2006, 10:42   #1
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,461
По умолчанию как корректно остановить цикл.

перенесено со старого форума. сообщение от 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.

Огромное спасибо все получилось!
Alar вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как остановить поток? Никки 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