Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
4067 / 2675 / 587
Регистрация: 11.09.2009
Сообщений: 9,546

В Caption "(не отвечает), Progress Bar не перерисовывается. Как исправить?

26.11.2025, 19:34. Показов 5757. Ответов 102
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Старое однопоточное приложение, Delphi 7, исходник есть.
В нём Progress Bar, показывающий процент выполнения вывода по USB. Процесс занимает секунд 20-40.
Примерно 50 на 50, примерно посередине времени выполнения процесса, система (Windows 7) замораживает форму, скачком чуть смещает её вправо и вниз на десяток пикселей, в её Caption система добавляет "(не отвечает)", перерисовки Progress Bar естественно нет. Причём программа прекрасно продолжает правильно работать, после завершения функции вывода по USB, форма "размораживается", и программа продолжает дальше работать.

Можно ли исправить такое "поведение" каким-нибудь простым "костылём"? Очень уж не хочется всю эту программу переписывать под потоки.

Видимо с этим уже пытались бороться, - есть Application.Process_Messages в местах смены значения Progress Bar.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.11.2025, 19:34
Ответы с готовыми решениями:

Как сделать так что, если на 2 форме значение label.caption поменялось, то и на 1 форме у label.caption было такое же
У меня есть 2 формы. На них есть по одному label. Как сделать так что, если на второй...

Как работает Progress Bar
Все доброе время суток, не подскажете как работает Progress Bar и для чего он нужен?

Как связать FTP и progress bar?
P.S. как для скачивания(get), так и для отправки(put) файла на FTP. C помощью IDFTP.Sizе узнаю...

102
9 / 11 / 1
Регистрация: 02.07.2021
Сообщений: 333
23.05.2026, 19:16
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Sinferno Посмотреть сообщение
если можно приостановить в нужный момент нить обработки, нарисовать что нужно и продолжить.
Об этом и говорю. Циклом остановить и рисуй как хочешь. Даже подсказал как проверять зависший порт и остановить всю операцию. Если в чтении все зависнет, из него уже не выйти, провод пошевелил и кирдык.
Уперлись в поток, он типа сам справится. Тогда костыли надо прикручивать, но это может не сработать. Опять тестить.
0
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,489
23.05.2026, 20:28
119zero, никто не писал, что поток "сам справится". В потоке если зависнет/долго не будет возвращаться функция чтения или записи, то от этого пользовательский UI не подвиснет и можно будет нажать кнопку прерывания операции, например, или ещё что-нибудь.

Всё это уже оговорено N раз на нескольких страницах.

 Комментарий модератора 
Дальнейшие повторы одних и тех же аргументов буду удалять.
0
9 / 11 / 1
Регистрация: 02.07.2021
Сообщений: 333
23.05.2026, 20:51
Автор указал, что пока не прочитается, комп не реагирует на интерфейс, все зависает.
Работа с портом идет на низком уровне.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.05.2026, 20:51
Помогаю со студенческими работами здесь

Задание Progress bar
Имеется прграмма (её исполнительный фрагмент, больше в ней ничего нет), которая открывает текстовый...

Progress bar
как сделать так, чтобы при нажатии кнопки(загружающая в memo текст) она начинала работать, а когда...

«Progress Bar» в виде постепенно закрашиваемого посекторно круга
Помогите пожалуйста, «Progress Bar» в виде постепенно закрашиваемого посекторно круга. Выложите...

progress bar
Вообщем суть в этом у меня есть 3 формы в первой форме заполняются эдит1 потом открывается идет...

Progress bar квадратиками хочу на XE5
Вот. Все работает, но сплошной полосой, а мне нравятся олдскульные квадратики - где взять?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
103
Ответ Создать тему
Новые блоги и статьи
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru