ProgresBar в цикле

Вопросы программирования и использования среды Lazarus.

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

ProgresBar в цикле

Сообщение gen » 14.08.2009 10:15:27

Почему когда ПрогресБар используешь в цикле, он не делает постепенной прорисовки?

Вот к примеру код

Код: Выделить всё
for i:=0 to Form1.CheckListBox1.Items.Count do
     ProgressBar1.Position:=ProgressBar1.Position+del;


Этот цикл в выполняется при нажатии на кнопку. Так вот ,когда жмешь на эту кнопкку ProgressBar1.Position:=0 , а потом прога думает и ProgressBar1.Position:=100 процентов сразу же. То есть прорисовки 20,40 ,60,80 процентов нету. Просто чел может подумать что прога зависла с таким успехом)
gen
новенький
 
Сообщения: 74
Зарегистрирован: 18.06.2009 21:04:22

Re: ProgresBar в цикле

Сообщение xcod » 14.08.2009 11:03:17

Вставь в цикл
Application.ProcessMessages
xcod
постоялец
 
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Re: ProgresBar в цикле

Сообщение gen » 14.08.2009 11:34:58

ясно. спасибо
gen
новенький
 
Сообщения: 74
Зарегистрирован: 18.06.2009 21:04:22

Re: ProgresBar в цикле

Сообщение Inferno » 14.08.2009 11:57:37

ащо вариант: ProgressBar1.Update; принудительно прорисует только его
при Application.ProcessMessages а если пользователь нажмет на [x] окна то после завешения цикла окно закроется, если это не отловить конечно....и будут срабатывать всякиетам кнопки... а юзъвер существо любопытное обязательно начнет их тыкать в процессе :)
Аватара пользователя
Inferno
новенький
 
Сообщения: 78
Зарегистрирован: 20.03.2009 14:40:20
Откуда: Тюмень

Re: ProgresBar в цикле

Сообщение Vadim » 14.08.2009 13:24:14

А лучше вывесить модальное окно с надписью: "Не тыкай в меня, отрок! Я задумалась...". :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39

Рейтинг@Mail.ru