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

Вниз

Как прервать цикл?   Найти похожие ветки 

 
Коля ©   (2002-05-20 04:02) [0]

Есть кнопка Cancel, дающая возможность пользователю прервать цикл (for i:= 0 to HtNum do). Как это правильно сделать?


 
Slym   (2002-05-20 06:23) [1]

Цикл организуй в потоке, иначе нока цикл крутится приложение "виснет".
Или


br:boolean; //глобальная переменная
br:=false;
for i:=0 to 10000 do
begin
if br then break;
application.processMessages;
....Твой код
end;

procedure TForm1.Button1Click
br:=true;


 
valley   (2002-05-20 09:50) [2]

Break


 
Коля ©   (2002-05-20 10:10) [3]

Спасибо. А каким образом возобновить цикл после паузы?


 
Anatoly Podgoretsky ©   (2002-05-20 10:15) [4]

Как паузу органиховываешь? По окончанию паузы возобновится автоматически


 
Song ©   (2002-05-20 10:15) [5]

После Break никак.


 
Anatoly Podgoretsky ©   (2002-05-20 10:17) [6]

Как паузу органиховываешь? По окончанию паузы возобновится автоматически


 
Song ©   (2002-05-20 10:22) [7]

После Break никак.


 
PVOzerski ©   (2002-05-20 10:48) [8]

Если в рамках одного потока, то что-нибудь такое:
type
tForm1=class(tForm)
...
private
pause:boolean;
...


procedure tForm1.Button1Click(Sender:tObject);
begin
pause:=true;
end;

procedure tForm1.Button2Click(Sender:tObject);
begin
pause:=false;
end;

procedure tForm1.DoCycle;
var
i:cardinal;
begin
i:=0;
while i<=HtNum do
begin
Application.ProcessMessages;
if not pause then
begin
...
inc(i);
end;
end;
end;

Только всё это называется "приостановить", а не "прервать".


 
AFROLOV ©   (2002-05-20 10:51) [9]

Модификация кода Slym (20.05.02 06:23) для организации паузы.
br:boolean; //глобальная переменная
ex:boolean; //глобальная переменная
...
br:=false;
while (i<10000) do
begin
application.processMessages;
if br then break;
if ex=true then
begin
....Твой код
i:=i+1;
end;
end;

procedure TForm1.Button1Click
...
br:=true;//завершить цикл
....

procedure TForm1.Button2Click
....
ex:=not ex;//приостановить цикл




 
AFROLOV ©   (2002-05-20 11:11) [10]

Кстати, возможно надо исключить вожможность запуска 2 экземпляров цикла одновременно.



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

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

Наверх




Память: 0.48 MB
Время: 0.008 c
3-97158
asafr
2002-05-06 17:05
2002.05.30
Переменное название временной таблицы в сохраненной процедуре.


1-97296
sdmitrii
2002-05-19 06:17
2002.05.30
Реализация drag&Drop несколько строк из StringGrid а


6-97371
Antoshka
2002-03-21 09:36
2002.05.30
Загрузить файл с Интернета


3-97188
MaXie
2002-05-08 12:45
2002.05.30
Вещественный тип имеет привязку к раскладке клавиатуры?


14-97425
sudiv
2002-04-23 14:10
2002.05.30
Чего с БК случилось ???