![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 24.08.2010
Сообщений: 2
|
![]()
Здравствуйте. Помогите пожалуйста. Есть процедура, в который очень много раз выполняется цикл. при чем выполняется долго. чтобы пользователь не умер от ожидания, пытаюсь выводить в ProgressBar шкалу выполнения (да и в StatusBar тоже пыталась). все чудесно..., но если переключиться в это время на какое-нибудь другое приложение или просто свернуть форму, а потом ее развернуть - все, труба, процесс не ползет, статус бар не меняется и не понятно долго ли еще до конца. подскажите, как с этим бороться?
|
![]() |
![]() |
![]() |
#2 |
Погулять вышел
Участник клуба
Регистрация: 17.05.2010
Сообщений: 1,573
|
![]()
Добавьте в тело цикла: Application.ProcessMessages;
Никогда не знаешь, где тебе повезет... (Фрай)
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 15.01.2010
Сообщений: 1,325
|
![]()
Если не поможет совет DIgorevich'а (хотя должен), вставьте в цикл
Код:
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "[ПРОграммист]" Yan's Home Digital Lab |
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 24.08.2010
Сообщений: 2
|
![]()
УРА!!!!!!!!!!!!! Вроде как заработало!!!!! Спасибо огромное!!! как мало надо человеку для счастья
![]() |
![]() |
![]() |
![]() |
#5 |
Регистрация: 06.05.2009
Сообщений: 9
|
![]()
Еще как вариант в теле цикла добавить :
Компонент.refresh; (как правило Main_Frm.refresh) или Компонент.repaint; (как правило Main_Frm.repaint) P.S. Cтолкнулся с такой проблемой при использовании Application.ProcessMessages. - Если в цикле выполняется математическое вычисление, то результирующие данные могут быть искажены. (Или я где-то затупил с переменными). |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
MiklePrist, ага не успели одно сообщение обработать добавляем второе.
Repaint шлет сообщение о перерисовке. значит намутили вы что-то. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
PageControl. в процессе проектировки формы создать несколько вкладок. | GN_ | Помощь студентам | 7 | 15.11.2011 20:56 |
Ввод куска кода с клавиатуры в процессе выполнения программы (язык Си) | Florent | Помощь студентам | 4 | 05.02.2010 22:34 |
Обновление таблицы после выполнения селекта | Tatochka | Microsoft Office Access | 5 | 15.01.2010 10:40 |
Можно ли ввести данные в таблицу StringGrid не в процессе выполнения программы а заранее | Arassir | Помощь студентам | 5 | 02.11.2008 17:34 |
приостановка выполнения процедуры | BESS | Общие вопросы Delphi | 5 | 15.09.2008 00:53 |