Показать сообщение отдельно

  #6377  
Старый 28.04.2010, 23:22
EndLeSSDre@M
Участник форума
Регистрация: 18.07.2009
Сообщений: 278
С нами: 8850305

Репутация: 259
По умолчанию

ОМГ вы опять друг другу мозг выносите)))) stepashka все очень просто!

объявляем глобальную переменную:

PHP код:
Form1TForm1;
StopBoolean False
вот сам цикл:

PHP код:
procedure TForm1.Button1Click(SenderTObject);
i:integer;
begin
Button2
.Enabled:=True;
Button1.Enabled:=False;
Stop:=False;
for 
i:=1 to n do
begin
//тут код
Application.ProcessMessages;
if 
not stop then break;
end;
end
вот код остановки:

PHP код:
procedure TForm1.Button2Click(SenderTObject);
begin
Stop
:=True;
Button2.Enabled:=False;
Button1.Enabled:=True;
end
и усе))) для тех кто решит спросить зачем я делал вот так:
PHP код:
Button2.Enabled:=False;
Button1.Enabled:=True
для того что бы в случае срабатывания этого кода:
PHP код:
Application.ProcessMessages
не было возможности заново запустить цикл!

дополняю:

Цитата:
А for ... to ... do как остановить и потом продолжить?
для этого можешь начальную позицию цикла объявить в глобальной переменной! и потом при нажатии он будет продолжать с того места, где закончил, например:

объявляем глобальную переменную:

PHP код:
Form1TForm1;
StopBoolean False;
k:integer
теперь, при остановке цикла, переменная будет оставлять свое значение там где остановилась... а чтобы обнулить можешь сделать 3 кнопку, которая будет обнулять счетчик

вот код для первой кнопки с самим циклом:

PHP код:
procedure TForm1.Button1Click(SenderTObject);
i:integer;
begin
Button2
.Enabled:=True;
Button1.Enabled:=False;
Stop:=False;
for 
i:=k to n do
begin
//тут код
Application.ProcessMessages;
if 
not stop then break;
k:=k+1;
end;
end
тем самым, если остановили, то в k останется то значение, на котором остановились!

пы сы еси есть какие то недочеты, то не ругайте, писал на пьяную голову

Последний раз редактировалось EndLeSSDre@M; 29.04.2010 в 11:41..
 
Ответить с цитированием