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

Вниз

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

 
super_alex   (2003-02-07 12:35) [0]

Есть огромный цикл. Есть кнопочка stop. Как выйти из этого цикла при нажатии на кнопочку stop? Просто когда на неё жмёшь, прога ждёт когда кончится цикл, а потом делает то, что прописано в stop.OnClick.


 
Anatoly Podgoretsky ©   (2003-02-07 12:38) [1]

Break выход из цикла


 
Александр С. ©   (2003-02-07 12:40) [2]

Application.ProcessMessages добавлять в теле цикла,
для обработки других сообщений.


 
Palladin ©   (2003-02-07 12:40) [3]

вставь в цикл Application.ProccessMessages
и условие if bStopMe then break;

bStopMe ставишь в False перед циклом
а на событии OnClick кнопки выставляешь его в True


 
super_alex   (2003-02-07 12:40) [4]

Не, Вы не поняли...
Цикл запускается при нажатии на другую кнопочку, а выйти из него надо при нажатии на кнопку stop!


 
super_alex   (2003-02-07 12:43) [5]

А по подробнее можно! Я начинающий программер...


 
Anatoly Podgoretsky ©   (2003-02-07 12:44) [6]

Это ты не понял, Break выход из цикла, как обработать кнопки тебе тоже сказали.
Но если ты считаешь, что все таки не поняли, объясни внятно, так как будто ты разговариваешь с трехлетним ребенком, а не с телепатами.


 
Palladin ©   (2003-02-07 12:45) [7]

блин!
куда уж подробней!!


 
super_alex   (2003-02-07 12:47) [8]

Ладно уже разобрался.
Всем спасибо, за обучение зелёных.


 
Кот Бегемот ©   (2003-02-07 12:49) [9]

Ну штооо - в облом кинуть ламеру пару строчек - дааа ????
procedure TForm1.Button2Click(Sender: TObject);
var
i: cardinal;
begin
Br:=false;
for i := 0 to 100000 do
begin
GroupBox1.Caption:=IntToStr(i);
Application.ProcessMessages();
if Br=True
then begin
GroupBox1.Caption:="Breaked";
break;
end;
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Br:=True;
end;



 
Song ©   (2003-02-07 12:50) [10]

Var FlagStop: Boolean=False;

Procedure TForm1.Button1Click(Sender:TObject);
{ Запуск цикла }
Begin
Repeat
Application.ProcessMessages;
IF FlagStop then Break
Until FlagStop;
End;

Procedure TForm1.Button1Click(Sender:TObject);
{ Кнопка "СТОП" }
Begin
FlagStop:=True;
End;


 
Song ©   (2003-02-07 12:51) [11]

Кстати сравнение нафик не нужно :)


 
Palladin ©   (2003-02-07 13:00) [12]

:)
а я еще и по другому могу
Var FlagStop: Boolean=False;

Procedure TForm1.Button1Click(Sender:TObject);
{ Запуск цикла }
Begin
While not FlagStop do Application.ProcessMessages;
End;

Procedure TForm1.Button1Click(Sender:TObject);
{ Кнопка "СТОП" }
Begin
FlagStop:=True;
End;


 
Sha ©   (2003-02-07 13:04) [13]

2 super_alex (07.02.03 12:47)
Чтобы цикл крутить быстрее, вызывай Application.ProcessMessages пореже, но вызывай.


 
bak ©   (2003-02-07 13:10) [14]

а через таймер ведь тоже можа, а? а через триды? Ж8-)



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

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

Наверх




Память: 0.49 MB
Время: 0.026 c
1-53072
Tyo
2003-02-06 17:06
2003.02.17
---|Ветка была без названия|---


1-52872
Slonic75
2003-02-07 15:25
2003.02.17
Написание сервисов под win…


3-52795
wHammer
2003-01-31 16:19
2003.02.17
Как определить в каком поле находится курсор в DBGridEh?


3-52729
cta
2003-01-30 08:47
2003.02.17
работа с датами


1-53013
iap
2003-02-10 16:37
2003.02.17
Мерцание jpeg изображения.