Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> цикл в прогрессбаре 
:(
    Опции темы
Garri66656
Дата 20.12.2008, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 7.12.2008

Репутация: нет
Всего: нет



Всем привет. Помогите плиз разобраться.
Форма зависает до того момента, пока прогрессбар не дойдет до конца.
Виснет из-за Sleep в цикле. Как правильно сделать? И почему вообще так происходит?
Код

 for(x=1; x<=300; x++)
{
progressBar1->Value = x;
Slepp(20);
}


Это сообщение отредактировал(а) Garri66656 - 20.12.2008, 02:54
PM MAIL   Вверх
NewDima
Дата 20.12.2008, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: нет
Всего: 12



обработчик событий не обрабатывает сообщений во время работы процедуры
Код

for(int x=1; x<=300; x++)
{
ProgressBar1->Position = x;
Application->ProcessMessages();
Sleep(20);
}

PM ICQ   Вверх
Garri66656
Дата 20.12.2008, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 7.12.2008

Репутация: нет
Всего: нет



Цитата(NewDima @  20.12.2008,  06:38 Найти цитируемый пост)
Application->ProcessMessages();

ошибка
error C2143: syntax error : missing ';' before '->'

Я где-то вычитал, что такой способ только в Builder работает, а у меня VS. Или я ошибаюсь?
PM MAIL   Вверх
andrew_121
Дата 20.12.2008, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Garri66656, Максимально правильным будет, разместить твою функцию в отдельном потоке. И оттуда обновлять прогрессбар.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Garri66656
Дата 20.12.2008, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 7.12.2008

Репутация: нет
Всего: нет



Цитата(andrew_121 @  20.12.2008,  12:30 Найти цитируемый пост)
Максимально правильным будет, разместить твою функцию в отдельном потоке.

Спасибо за совет, но это очень долгий путь)))) Я совсем новичок в с++.  smile 
PM MAIL   Вверх
andrew_121
Дата 20.12.2008, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(Garri66656 @  20.12.2008,  12:36 Найти цитируемый пост)
Спасибо за совет, но это очень долгий путь

Ну, тогда дерзай!
P.S.
В Билдере это очень просто.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
mes
Дата 20.12.2008, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



обновляйте прогрессбар по таймеру.


Цитата(Garri66656 @  20.12.2008,  12:04 Найти цитируемый пост)
error C2143: syntax error : missing ';' before '->'

а Вы хидер подключили где у Вас Application описан ?


--------------------
PM MAIL WWW   Вверх
Garri66656
Дата 20.12.2008, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 7.12.2008

Репутация: нет
Всего: нет



Цитата(mes @  20.12.2008,  13:25 Найти цитируемый пост)
а Вы хидер подключили где у Вас Application описан ? 

Цитата(Garri66656 @  20.12.2008,  12:36 Найти цитируемый пост)
Я совсем новичок в с++

А где он у меня описан? В каком хедере?))


Цитата(andrew_121 @  20.12.2008,  12:40 Найти цитируемый пост)
Ну, тогда дерзай!
P.S.
В Билдере это очень просто. 

Билдер платный, а я небогатый и законопослушный гражданин)) Да и цели у меня изучать Си именно в VS.
PM MAIL   Вверх
Garri66656
Дата 20.12.2008, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 7.12.2008

Репутация: нет
Всего: нет



Цитата(mes @  20.12.2008,  13:25 Найти цитируемый пост)
обновляйте прогрессбар по таймеру.

Чет не соображу как это сделать.  Если int x; progressBar1->Value = x+1;  то с каждым тиком x становится равным одному.
PM MAIL   Вверх
mes
Дата 20.12.2008, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Garri66656 @  20.12.2008,  17:21 Найти цитируемый пост)
Чет не соображу как это сделать.  Если int x; progressBar1->Value = x+1;  то с каждым тиком x становится равным одному. 


Код

progressBar1->Value += 1;



--------------------
PM MAIL WWW   Вверх
Garri66656
Дата 20.12.2008, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 7.12.2008

Репутация: нет
Всего: нет



Спасибо, получилось.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0511 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.