Есть процедура. Которая может выполняться ну очень долго в силу большого объёма исходного материала. Ну например, какое-нибудь копирование, парсинг, постинг.
Так вот вопрос - как поставить выполнение на паузу, и как остановить. В качестве примера, приведу код процедуры с которой мне вчера помогли - копирование с задержкой:
Код:
procedure TForm1.FakeCheck;
var i:integer;
begin
for i := 0 to Memo3.Lines.Count - 1 do begin
StatusBar1.Panels.Items[0].Text:= Memo3.Lines[i];
delay(2); //тут задержка в секундах
ProgressBar1.Position:=Round(1000 * i/Memo3.Lines.Count-1);
end;
end;
Нужно обрабатывать её тремя кнопками.
Запуск, Пауза, Стоп
Если с запуском, всё прозрачно, то как её остановить, или прервать - только мысли.
Например, использовать конструкцию вроде Form1.Tag := 0; при запуске. По нажатию на кнопку паузы менять значение допустим на единицу, ну а при 2 - останавливать.
