Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.23;
Скачать: CL | DM;

Вниз

Как грамотно прервать работу цикла ?   Найти похожие ветки 

 
Цикл   (2002-05-14 10:23) [0]

Как грамотно прервать работу цикла по кнопке или по закрытию формы?
Например такого:
For i:=1 to 100000 do
Begin
{Мой оброботчик}
end;


 
Song ©   (2002-05-14 10:26) [1]

Break


 
wicked ©   (2002-05-14 10:46) [2]

хех... грамотно...
в обработчике нажатия на кнопку выставляем флажок...
в цикле делаем application.processmessages и после этого проверяем значение флажка... если установлен - break и далее по тексту...
ну и, очевидно, не забываем сбрасывать флажок при начале работы... ;)


 
Song ©   (2002-05-14 10:51) [3]

2wicked © (14.05.02 10:46)
хех... грамотно...
Это палка в мой огород? :-)


 
wicked ©   (2002-05-14 11:03) [4]

2 Song ©
гы... "на воре шапка... " :))
отнюдь... это мой стиль...


 
Цикл   (2002-05-14 11:31) [5]

А пример можно ?


 
Malder ©   (2002-05-14 11:48) [6]


Var Flag:Boolean;
i:integer;
...
Flag:=false;
For i:=1 to 100000 do
Begin
Application.ProcessMessages;
if Flag then Break;
{Мой оброботчик}
end;


В OnClose формы:

Flag:=true;


 
Song ©   (2002-05-14 11:50) [7]

>>В OnClose формы: Flag:=true;

А зачем?


 
PVOzerski ©   (2002-05-14 12:28) [8]

>А зачем?
А иначе когда же он true станет?
Ежели автор вопроса - начинающий, дополнительное пояснение: flag - не
локальная переменная метода, в котором крутится цикл, а либо глобальная,
либо поле или property класса-владельца метода.
Кроме того, использование метода ProcessMessages может сильно замедлить
выполнение цикла, иногда это критично. Я бы как альтернативу посоветовал
вынести цикл в отдельный thread, а ProcessMessages не использовать.


 
Song ©   (2002-05-14 14:19) [9]

А.. понятно, не закроешь форму..



Страницы: 1 вся ветка

Текущий архив: 2002.05.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
1-73161
Windeus
2002-05-09 17:03
2002.05.23
Associate option


7-73411
Jony
2002-02-26 12:00
2002.05.23
Как изменить ShortCut кнопки или пункта меню программно?


1-73134
MisterBin
2002-05-12 12:23
2002.05.23
Каким образом можно осуществить такую подсказку:


3-73032
vopros
2002-04-26 12:13
2002.05.23
Как инсталяшку сдлать с бaзой Access?


7-73430
Vacheslav
2002-02-25 17:11
2002.05.23
Как обработать событие переключения между приложениями?