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

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

Dervish

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

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

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

Помогите, буду благодарен, спс заранее.
 
04.09.2006
2 566
3
#2
Оставь sleep и на каждой итерации обновляй окно, а лучше ту область, которая была изменена
 
Z

zubr

#4
Как я понимаю, цикл происходит в основном потоке программы, поэтому неплохо к Sleep добавлять Application.ProcessMessages. Скорее всего решится вопрос с обновлением рисунка, да и программа будет способна реагировать на действия пользователя (например пытающегося нажать кнопку Close).
 
A

Ant1b1ot1k

#5
<!--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;
 
Статус
Закрыто для дальнейших ответов.