| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > непонятный глюк с PROGRESS_CLASS |
| Автор: lollollollol 16.8.2013, 16:27 | ||||
Здравствуйте.
Но уже через минуту работы такой программы виснет весь комп, все окна дико тормозят, так, будьто видео карта не успевает обработать изменения. Если закоментировать строку
То проблем нет. Как програсс бар может влиять на всю систему? Если он есть, тормозят ВСЕ окна. Я уже третий день бьюсь, всё перепробывал. Моет быть есть альтернативные полосы прогресса? Хотя главный вопрос, как сделать чтобы небыло тормозов с полосой ОС:Win7 спасибо |
| Автор: Чучмек 16.8.2013, 17:53 |
А сколько раз, за это время, меняется позиция? |
| Автор: lollollollol 16.8.2013, 18:50 |
| 0,25,55,85,86,87,88,89,90,91,92,93,94,95,100 15 раз. Виснуть всё начинает примерно чере минуту после всего этого, и с каждой минутой всё сильнее. Через минут 5 доходит до того что окна почти не перерисовываются, а клик на кнопку закрытия программы отрабатывает аж через минуту, и всё это на 4-х ядерном компе с 4 гигами ОЗУ. |
| Автор: Poseidon 16.8.2013, 19:07 |
| Покажи больше кода. Не удивлюсь, если узнаю, что у тебя там окажется цикл и PrgBar создается на каждой итерации. |
| Автор: lollollollol 16.8.2013, 19:11 | ||
| PrgBar создаётся при запуске программы, вместе со всем другими окнами. Если просто создан прогресс бар, не висне. Виснет после выполнения этого кода. Причём я проверял бряком, код выполняется полностью, зацикливаний нет
|
| Автор: Чучмек 16.8.2013, 20:58 |
| lollollollol, а зачем такая мешанина WinAPI и VCL ? |
| Автор: lollollollol 16.8.2013, 20:59 |
| где тут vcl? Edit1 это хендл созданого окна вин апи |
| Автор: Чучмек 16.8.2013, 21:12 |
Сори, недоглядел. Какие сообщения и как обрабатываешь? Можешь слепить пример попроще (оставив только PrgBar) который будет зависать? |
| Автор: lollollollol 16.8.2013, 21:28 | ||||
Нифига понять не могу Убрал из кода всё кроме работы с прогрессом
Тормоза пропали. ВСё, щас буду головой биться! Если не создавать окно прогресса , всё нормально, и если убрать всё лишнее, но оставить окно, тоже нормально, бред... Добавлено через 6 минут и 54 секунды Хотя ошибаюсь, Глюки ЕСТЬ! Просто они не в течении минуты, а в течении 3х минут проявились. прошло 5 минут, с трудом чтото могу сделать, всё тормозит |
| Автор: northener 16.8.2013, 22:33 |
| А почему LPARAM у PBM_SETPOS не нулевой? |
| Автор: lollollollol 17.8.2013, 07:58 | ||||
| Вообщем испробывал всё что мог. Если создавать прогресс бар непосредственно перед его использованием, а не при запуске программы, то нет красивой виндовской анимации. РЕШЕНИЕ НАЙДЕНО. Незнаю на сколько корректное. После отработки прогресс бара отправляю окну
а в обработчике прописал так:
Таким образом у меня всегда свежее окно, глюк изчез. Но в чём была причина до этого, непонятно. Я думаю это связан с виндовой анимацией прогресс бара Спасибо всем, кто откликнулся! |