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

Тема в разделе "Delphi - FAQ", создана пользователем Dervish, 22 мар 2007.

Статус темы:
Закрыта.
  1. Dervish

    Dervish Гость

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

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

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

    Помогите, буду благодарен, спс заранее.
     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Оставь sleep и на каждой итерации обновляй окно, а лучше ту область, которая была изменена
     
  3. Barmutik

    Barmutik Гость

    Чnо-нибудь аля PaintBox.Repaint
     
  4. zubr

    zubr Гость

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

    Ant1b1ot1k Гость

    <!--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;
     
  6. Гость

    n:=0;
    repeat
    refresh:
    n:=n+1;
    until n=100;
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей