Доброго времени суток. Профи, подскажите, как решить проблемку чтения из Мемо, если в мемо строка передается из потока читающего Сом порт.
В двух словах – пишу обмен между компом и внешним контроллером (для отладки взял Ардуино).
Команды проходят – ардуино отрабатывает и отвечает, ответы я вижу в Мемо, но тут как раз и проблема. Если посылать команды кнопкой
как пример:
Код:
procedure TForm1.Button5Click(Sender: TObject);
begin
WriteComm(Form1.ComboBox1.Text);
end;
То ответ в мемо виден, и его другой кнопкой можно обработать, нпример так:
procedure TForm1.Button7Click(Sender: TObject);
begin
Form1.Memo2.Text:=Form1.Memo1.Text;
end;
и эта строка доступна для анализа.
Но, если это делать в процедуре типа :
procedure TForm1.Button6Click(Sender: TObject);
var
motorX :string;
begin
motorX:= ‘ ATS=X200 ’;
WriteComm(motorX);
sleep(100);
Memo2.Lines.Text:= Memo1.Lines.Text;
……..
………
end;
Админ: Пользуемся тегами при оформлении кода!
то строка(ответ от контроллера) в мемо1 приходит, но не копируется из мемо1 в мемо2 и проанализировать ответ нельзя.
Я понимаю, что поток чтения порта , процедурой синхронизации блокирует чтение мемо1 , что это разные потоки, но если запускать копирование кнопкой из главной формы то оно проходит. Как получить данные в процедуре ? Подскажите плизз.