![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
procedure [D6, WinXP]
AzIN © (2004-09-02 17:38:00)Ув. мастера, есть в моей проге процедура proc, в ней выполняется цикл. Процедура начинает выполняться при нажатии на кнопку button1. Как остановить цикл в процедуре например нажатием на кнопку button2?
AzIN (2004-09-02 19:15:00) [1]спасибо!
AlexKocharin (2004-09-02 18:59:00) [2]
procedure TForm1.Button1Click(Sender: TObject);
begin
stop:=false;
label1.Caption:='цикл запущен';
repeat
{цикл}
application.ProcessMessages;
until stop or application.Terminated;
label1.Caption:='цикл прерван';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
stop:=true;
end;
end.
На форме помещаешь 2 кнопки TButton и метку TLabel,
обьявляешь переменную stop там, где Form1:
var
Form1: TForm1;
stop:boolean;
Жмешь F9 и радуешься результату.
Плохиш (2004-09-02 18:44:00) [3]
> AzIN (02.09.04 18:37) [5]
Там в делфи столько примеров, что можешь заизучаться
AzIN (2004-09-02 18:37:00) [4]Можете на примере показать. Я недавно делфи учить начал.
Суслик (2004-09-02 17:46:00) [5]без [1] не будет обрабатываться нажатие кнопки.
[1] надо переодически вызывать.
Хотя, все зависит от того, какой цикл - может там уже где-нить вызыватеся [1]. Тогда, конечно, еще раз его вызывать не нужно.
Суслик (2004-09-02 17:45:00) [6]написать обработчки нажатия для button2, в нем устанавливать флаг, переодически вызывать [1], также ререодически проверять знанчеие флага.
antonn (2004-09-02 17:44:00) [7]в цикл добавь переменную b:boolean(изначально false) и делай проверку:
if b then exit;
А в кнопке2 поставь b:=true;
P.S. Довольно корявое решение, но с [1] у меня не получалось...
BillyJeans (2004-09-02 17:40:00) [8]Application.ProcessMessages