Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2010, 11:13   #1
ssvetlanka
Новичок
Джуниор
 
Регистрация: 24.08.2010
Сообщений: 2
По умолчанию Обновление формы в процессе выполнения процедуры

Здравствуйте. Помогите пожалуйста. Есть процедура, в который очень много раз выполняется цикл. при чем выполняется долго. чтобы пользователь не умер от ожидания, пытаюсь выводить в ProgressBar шкалу выполнения (да и в StatusBar тоже пыталась). все чудесно..., но если переключиться в это время на какое-нибудь другое приложение или просто свернуть форму, а потом ее развернуть - все, труба, процесс не ползет, статус бар не меняется и не понятно долго ли еще до конца. подскажите, как с этим бороться?
ssvetlanka вне форума Ответить с цитированием
Старый 24.08.2010, 11:22   #2
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Добавьте в тело цикла: Application.ProcessMessages;
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 24.08.2010, 11:27   #3
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Если не поможет совет DIgorevich'а (хотя должен), вставьте в цикл
Код:
Update;
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 24.08.2010, 11:42   #4
ssvetlanka
Новичок
Джуниор
 
Регистрация: 24.08.2010
Сообщений: 2
По умолчанию

УРА!!!!!!!!!!!!! Вроде как заработало!!!!! Спасибо огромное!!! как мало надо человеку для счастья
ssvetlanka вне форума Ответить с цитированием
Старый 14.09.2010, 00:05   #5
MiklePrist
 
Регистрация: 06.05.2009
Сообщений: 9
По умолчанию Обновление формы в процессе выполнения процедуры

Еще как вариант в теле цикла добавить :
Компонент.refresh; (как правило Main_Frm.refresh)
или
Компонент.repaint; (как правило Main_Frm.repaint)


P.S. Cтолкнулся с такой проблемой при использовании Application.ProcessMessages. - Если в цикле выполняется математическое вычисление, то результирующие данные могут быть искажены. (Или я где-то затупил с переменными).
MiklePrist вне форума Ответить с цитированием
Старый 14.09.2010, 00:09   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

MiklePrist, ага не успели одно сообщение обработать добавляем второе.
Repaint шлет сообщение о перерисовке.

значит намутили вы что-то.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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