Показать сообщение отдельно
  #3  
Старый 10.12.2018, 12:06
Рубь Рубь вне форума
Прохожий
 
Регистрация: 09.12.2018
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо за ответ,
но про задержку я подумал в первую очередь, не причём оказалась пробовал до
Код:
sleep(1000);
от момента отправки строки в контроллер. Отклик приходит гарантированно раньше
------
Чтение порта и запись в Мемо1 синхронизируется между основным потоком и потоком чтения порта:
Код:
 begin
    ClearCommError(ComFile, Temp, @ComStat);                 //Заполняем структуру ComStat;
    Btr:=ComStat.CbInQue;                                    //Получаем из структуры количество байт;
    If (Btr > 0) then                                      //Если байты присутствуют,
    begin
        ReadFile(ComFile, Buffer, SizeOf(Buffer), Temp, @OverRead); //Читаем порт;
        Synchronize(OutToMemo);              //Делаем синхронный вызов процедуры загрузки буфера в Memo;
    end;
 end;
......
......
procedure MyThread.OutToMemo;
begin
  Form1.Memo1.Lines.Text:=Form1.Memo1.Lines.Text+(String(buffer)); {Загружаем в Memo содержимое буфера;}
  Buffer:=''; //Очищаем переменную буфера;
end;
тут как бы то же всё стандартно.......................
приоритет потока в котором крутится чтение порта - tpNormal,
однако чтение Мемо1 в Мемо2 не проходит (
Ответить с цитированием