Показать сообщение отдельно
  #2  
Старый 30.12.2021, 00:41
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, без железок отладить трудно, но пару идей подкину.
Похоже, затык происходит либо в компоненте (COMPort), либо где-то в самой VCL. Т.е. если происходят доп. действия (которые, как мне кажется, обрабатывают очередь сообщений) и все работает, то тут скорее дело в том, что работа основной программы (твоего кода) просто блокирует получение данных.
Что можно попробовать.
1. Вставить Aplication.ProcessMessages (кажется так) в цикл работы твоей программы, что принудительно вызовет обработку сообщений в очереди.
2. Вынести работу с железкой в отдельный поток. Там посылать запросы, вычитывать ответ и по получению полного пакеты передавать результат в основной поток программы для отображения.
Ответить с цитированием