Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/63: Рейтинг темы: голосов - 63, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 04.04.2009
Сообщений: 18
1

Задержка в программе

18.04.2009, 11:01. Просмотров 12058. Ответов 7
Метки нет (Все метки)


Ребят, вот еще такой вопрос возник: я переделываю задачку из С++ в С++ builder. Так вот там была функция задержки delay. Как я понял, ее в билдере заменили на Sleep. Когда ее я использую окошко, в которое выводятся данные (например, информация о количестве сделанного в процессе от 1% до 100%), начинает "зависать". Таким образом когда окошко перестает глючить, я получаю лишь последние данные - то бишь 100%. Как это исправить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2009, 11:01
Ответы с готовыми решениями:

Задержка в программе
как заставить прогу ждать допустим 30 сек(т.е. не идти дальше по кодув течении определённого...

задержка в программе
как сделать задержку в 10секунд???

Задержка в программе (не API)
Как сделать задержку в программе на VC++ 6.0. Не API функцией.

Задержка в программе на неопределенный срок
Подскажите, пожалуйста, как сделать задержку в программе на неопределенный срок, чтобы при нажатии...

7
1849 / 706 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
18.04.2009, 12:36 2
C++
1
2
3
4
5
int time=GetTickCount();
while((GetTickCount()-time)<1000)//Или меняй задержку на свою
          {
          Application->ProcessMessage(); 
          }
Вот тебе задержка без "зависания" формы
2
0 / 0 / 0
Регистрация: 04.04.2009
Сообщений: 18
18.04.2009, 13:35  [ТС] 3
Спасибо!
0
0 / 0 / 0
Регистрация: 04.04.2009
Сообщений: 18
20.04.2009, 11:39  [ТС] 4
Ребят, все равно не помогло... Прога упорно изображает глюк. посмотрите, что можно сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
while (st < tt)
       {
        _asm
    {
        mov dx, 378h
        mov al, 0
        out dx, al
    }
        Sleep(lp);
        lpc ++;
        _asm
    {
        mov dx, 378h
        mov al, 1
        out dx, al
    }
        Sleep(rt);
       _asm
    {
        mov dx, 378h
        mov al, 0
        out dx, al
    }
        Sleep(sp);
        spc ++;
        _asm
    {
        mov dx, 378h
        mov al, 1
        out dx, al
    }
        Sleep(rt);
        st = st + lp + sp;
        twt = st + 2*rt*lpc;
        pd = 100*(st/tt);
        Form3->Label5->Caption = pd;
        Form3->Label6->Caption = st/1000;
        Form3->Label7->Caption = twt/1000;
    }
_asm - это асемблеровский код. Лучше его скрыть, т.к. он работает с LPT портом, а XP этого не позволяет.
0
1849 / 706 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
20.04.2009, 11:48 5
А поточнее. Какой именно глюк? И вообще, что надо получить, и зачем задержки?
0
0 / 0 / 0
Регистрация: 04.04.2009
Сообщений: 18
20.04.2009, 11:55  [ТС] 6
Задержки нужны, для того, что бы эту самую 1, которая задается ассемблеровским кодом, на выходе LPT порта удерживать определенное время.
Глюк выглядит в виде зависшей формы, т.е. программа идет, а на форме ничего не отображется - она какбы зависла. В конце выполнения цикла, на форме выдаются окончательные данные, а мне хотелось бы, что бы данные выдавались в режиме реального времени.
0
40 / 40 / 8
Регистрация: 29.01.2009
Сообщений: 244
20.04.2009, 23:26 7
а Отаку плохо объяснил?
вставь Application->ProcessMessages(); в любую часть своего цикла(в начало, в конец, не играет роли, лишь бы не в ассемблеровскую вставку)
0
192 / 190 / 15
Регистрация: 27.01.2009
Сообщений: 548
21.04.2009, 10:02 8
так...для работы с железом лучше запускать дополнительный поток. смотри TThread. не забудь про Sinhronize(вроде так пишется=)) метод. а там Sleep(сколько хочешь) без всякого подвисания формы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2009, 10:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Задержка (Остановка) только одной функции в программе
В общем, осваиваю я с++, для чего делаю разнообразные элементарные программы. Создавая очередную...

Выбрать файл с БД в программе и совершать с этой БД действия в программе
вообщем проект реализует Тест знаний, работает на БД (xml - ну его), все получилось кроме одного,...

написать коментарии к программе и исправить ошибку в одной программе
и впрграмме mass нужно найти ошибку

Задержка
Здравствуйте. Хочу поиграться с ШИМ, что б на COM порте светодиод плавно изменял интенсивность. Но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.