Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Экстренное завершение цикла [D6, WinXP]


Ryser ©   (2002-10-05 16:53:00) 

Здравствуйте! Извините за ламерский вопрос, но...
Есть цикл, занимающий много времени (1 процедура). Необходимо на некоторое событие (2 процедура) его (цикл) завершить. Была идея использовать метки, но не получается обьявить глобальную метку. Посоветуйте, пожалуйста!


Anatoly Podgoretsky   (2002-10-05 22:55:00) [1]

Цикл то у тебя какой?


rhf   (2002-10-05 22:45:00) [2]

как сказал Suntechnic :) делать так
.......
var
quit:boolean = FALSE;
.......
.......
procedure n1;
begin
quit:=FALSE;
while not quit do
begin
// какое-то действие
application.ProcessMessages
end;
end;
.......
.......
procedure n2;
begin
quit:=TRUE
end;


Rouse_   (2002-10-05 20:34:00) [3]

Выход из процедуры Exit;это если у тебя несколько вложенных циклов и Break;не помогает, можно сделать еще выход по меткам, но это настолько всеми не приветствуется, что даже обьяснять не буду

Желаю успехов


alxx   (2002-10-05 20:21:00) [4]

А вообще, Thread надо использовать


Suntechnic   (2002-10-05 18:57:00) [5]

Объявляешь флажок(глобальный или как атрибут класса). В первой процедуре регулярно проверяешь флажок и столь же регулярно вызываешь Application.ProcessMessages;Ну а по некому событию устанавливаешь этот флажок.


Esu   (2002-10-05 16:55:00) [6]

Хм... break ? :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо