Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Перерисовка формы

Здравствуйте !

Есть такая проблема: в определённый момент выполнения программы, создаю форму
и покакзываю её модально. По нажатии кнопки выполняется цикл, и я в ProgressBar
вывожу состояние этого цикла (сколько процентов выполнено). Но только у меня
на протяжении всей работы цикла окно находится в "подвешенном" состоянии, и прорисовывается
только после завершения работы цикла а в ProgressBar уже прописано 100%.
Подскажите, как мне прорисовывать (обновлять) форму при каждом шаге, чтоб
ProgressBar показывал также и промежуточные проценты?

Ответить   Денис Селезнев Fri, 22 Jul 2005 10:54:00 +0400 (#405917)

 

Ответы:

В таких случаях обычно цикл засовывают в отдельный поток (rtfm msdn
"multithreading") и оттуда шлют сообщения (message) о текущем состоянии
главному окну

Номер выпуска : 4797
Возраст листа : 670 (дней)
Количество подписчиков : 525
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/406005
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Fri, 22 Jul 2005 22:40:08 +0400 (#406005)

 

Hello RTE,

Friday, July 22, 2005, 10:40:08 PM, you wrote:

есть еще вариант - цикл помещается в отдельный поток, а в основном
потоке ставится таймер, обработчик которого смотрит сколько процентов
выполнено и в соответствии с этим обновляет прогресс бар.

Ответить   Sun, 24 Jul 2005 00:35:52 +0400 (#406394)

 

Хаю ду ю ду RTE?

Смотрю и вижу, как ты печатаешь умные вещи и дай-ка, думаю,
тоже что-нибудь напечатаю:

Сложно слишком в это на уровне msdn вникать сразу - я так понял вопрос
прозвучал от начинающего программера.
Проще использовать TThread (TThreads?) или, если вообще не
заморачиваться - в цикл вставить Application.ProcessMessages

Ответить   Sun, 24 Jul 2005 22:00:11 +0500 (#406597)

 

Здравствуйте, RTE.

В письме mid:20050722235610.4060***@c*****.subscribe
Вы писали 22 июля 2005 г. в 21:40:08 [GMT +2:00]:

Все гораздо проще...
В теле цикла добавь эту строку:
Application.ProcessMessages;

И почитай в хелпе описание к процедуре ProcessMessages.

Ответить   Feniks Mon, 25 Jul 2005 10:43:37 +0300 (#406957)