Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];
ВнизОстановка цикла Найти похожие ветки
← →
User_OKA (2002-10-10 07:25) [0]Здравствуйте мастера!!!
Есть программа с циклом. Необходимо приостановить его выполнение, для того, чтобы посмотреть данные на форме.
А затем, например по клавише Enter продолжить его выполнение.
← →
MBo (2002-10-10 07:38) [1]1 путь - в процедуру с циклом передаешь начальное значение счетчика (или глоб. переменная), в ней проверяешь Application.processmessages и по некому флагу выходишь, затем снова запускаешь ее с места остановки
2 - выносишь в отдельный поток, suspend/resume
← →
Viktor Kushnir (2002-10-10 07:43) [2]Способ кривоват, но все же...
Сделай внутри главного цикла еще один.
Типа:
Var
Pause :Boolean = false; //глобальная
For i:= 0 to do //это твой главный цикл
begin
While Pause do // это цикл паузы
Begin
//сюда можно что-нить написать, типа
Application.Processmessages;
End;
End;
И где-нить в обработчеке кнопки "Пауза/Продолжить"
напиши такое
Pause := not pause;
← →
Anatoly Podgoretsky (2002-10-10 07:58) [3]Ты бы написал критерий остановки, значение, событие или как.
В принципе тебе уже ответили, только я бы структурно изменил это, на основе Viktor Kushnir © (10.10.02 07:43)
for i:= 0 to do begin
...
Application.Processmessages;
if Criteria then View // процедура (форма) просмотра
...
End;
← →
KSergey (2002-10-10 08:13) [4]> Viktor Kushnir © (10.10.02 07:43)
Только для того, чтобы этот обработчик срабатывал, необходимо так же и в самом цикле вставлять Application.Processmessages, либо использовать ф-цию PeekMessage (что-то такое)
← →
User_OKA (2002-10-10 10:01) [5]Спасибо мвстера!!!
← →
REA (2002-10-10 10:16) [6]Сначала скажи зачем это? Надеюсь не для отладки?
← →
User_OKA (2002-10-10 13:22) [7]Надеюсь нет!!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c