Помогите, кто чем может ! ! !

  • Автор темы Автор темы Dervish
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
D

Dervish

Как можно зделать паузу в цикле:

n:=0;
repeat
n:=n+1;
until n=100;

ну типа delay(integer) в Турбо Паскале.
sleep(integer)- я уже пробовал не помогло.
Короче этот цикл я использую для графики, ну для движения линии по кругу(рисунок на прикрепленном файле). В цикл я вставил sleep(integer) - программа регистрирует паузу но не дает изображение, Форма показивает рисунок только после токо как линия уже сделала круг, а мне нужно чтоб я видел как линия проходит каждую ступень. С формулой все ok, только в паузе проблема или я ее не правильно использую.

Помогите, буду благодарен, спс заранее.
 
Оставь sleep и на каждой итерации обновляй окно, а лучше ту область, которая была изменена
 
Чnо-нибудь аля PaintBox.Repaint
 
Как я понимаю, цикл происходит в основном потоке программы, поэтому неплохо к Sleep добавлять Application.ProcessMessages. Скорее всего решится вопрос с обновлением рисунка, да и программа будет способна реагировать на действия пользователя (например пытающегося нажать кнопку Close).
 
<!--QuoteBegin-European+22:03:2007, 15:14 -->
<span class="vbquote">(European @ 22:03:2007, 15:14 )</span><!--QuoteEBegin-->Оставь sleep и на каждой итерации обновляй окно, а лучше ту область, которая была изменена
[snapback]59839" rel="nofollow" target="_blank[/snapback]​
[/quote]

Используй вот эту команду, её надо вставлять в цикле:
Form1.Refresh;
 
n:=0;
repeat
refresh:
n:=n+1;
until n=100;
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab