Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
Коля   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
3-97196
kserg@ukr.net
2002-05-07 17:36
2002.05.30
Кто работал с данными типа Time - подскажите


1-97310
_SnAke_
2002-05-19 14:10
2002.05.30
Динамические массивы в Д3 (Срочно)


14-97393
MBo
2002-04-15 18:03
2002.05.30
Очередная несложная разминка


3-97127
Relaxoid
2002-04-28 21:41
2002.05.30
Проблема с AdoStoredProc


3-97199
cdaDmitriy
2002-05-07 17:38
2002.05.30
Проблема с DBGrid ( Прыгает курсор )





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский