Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.09;
Скачать: CL | DM;

Вниз

Долгий цикл + ProgressBar   Найти похожие ветки 

 
Vit@l   (2002-09-19 14:50) [0]

Есть долгий цикл и хотелось бы показывать прогресс на ProgressBar"е. Только вся фишка в том, что во время цикла ProgressBar не обновляется, тлолько в конце становится весь сразу окрашенным. Тогда стал смотреть на ProcessMessages. Как оказалось в KOL их целый набор. Поставил в цикле Applet.ProcessPaintMessages, однако это стало офигенно тормозить работу. Что делать?
Пробовал посылать ProgressBar1.ProcessPaintMessages, но это наоборот не дает никаких результатов(т.е. не отрисовывается плавно)


 
SPeller ©   (2002-09-19 15:01) [1]

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


 
BorisMor   (2002-09-19 16:20) [2]

for j:= 0 to List.Count-1 do
begin
if j * 100 div List.Count > Progress.Progress then
begin
Progress.Progress := j * 100 div List.Count;
Applet.ProcessMessagesEx;
end;
...
В данном случает
Progress - Progressbar
List - PStrList

Копирайт Vladimir Kladov :)


 
BorisMor   (2002-09-19 16:21) [3]

Правдо "гладкого скольжения" индикатора здеь нету.


 
Gandalf   (2002-09-19 18:47) [4]

1)Либо ProcessMessages(Ex),
2)либо Поток.
Первое проще, второе качественее.


 
Vladimir Kladov   (2002-09-20 11:16) [5]

Самое простое

while Applet.ProcessMessage do;

Я наверное верну именно такой код в ProcessMessages. Сейчас там стоит WaitMessage. Он все тормозит. Кому надо, вызовет его сам.

С потоком - решение идеальное, если идут длинные запросы к функциям апи, из которых долго нет возврата. если свой цикл, в него проще вставлять обращение к ProcessMessage.



Страницы: 1 вся ветка

Текущий архив: 2003.06.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
14-26710
Лис
2003-05-21 18:40
2003.06.09
Парни, объясните чайнику как в Дельфи добраться до прерываний!


3-26371
Snake
2003-05-19 14:00
2003.06.09
Пожалуйста, помогите составить запрос...


1-26551
NewD
2003-05-28 11:03
2003.06.09
Нужен компонент вычисляющий строки.


7-26809
grusty
2003-04-04 14:18
2003.06.09
Как проверить - защищена ли дискета от записи/удаления или нет?


7-26801
snake128
2003-03-29 17:35
2003.06.09
Конфигурация компьютера