Чтение последней строки в Tmemo в Delphi

Попробовав очень долго.... решил обратиться за помощью.

Я пытаюсь прочитать последнюю строку, отправленную Tmemo в Delphi. Я посылаю строки кода одну за другой разработчику. подняться на борт Правлению нужны разные строки кода, отправляемые на него каждый раз. Моя конечная цель - прочитать последнюю строчку о разработчике. доска отправляет обратно.

НАПРИМЕР

Установите ATT = 7 --->> \ отправлено dev. доска

Девиация Правление отвечает

ОК <----- \ получен от разработчика. доска

отправьте следующую строку кода.

Или же

ERR

отправьте команду "set att = 7" еще раз.


До сих пор у меня есть большая часть того, что мне нужно работать. Я просто не могу заставить Дельфи прочесть последнюю строчку времени.

я пытался

procedure TReaderProgrammer.Button3Click(Sender: TObject );
var 
  RxData : string; 
  LL : string; 
  ll2: system.integer;
begin
  LL:= memorxdata.lines.count.ToHexString;
  LL2:=memorxdata.Lines.Count;
  if ComPort1.Connected then
  begin
     showmessage(ll);
     ComPort1.WriteStr(memorxdata.Lines[ll2]+#13+#10);
  end;
end;

Showmessage предназначено только для моего собственного ознакомления... Я знаю, что оно перенаправляет данные, которые получает обратно, просто для справки.

Странно, иногда это работает, и это линии. Граф иногда тоже отскакивает, так что я думаю, что поступаю совершенно неправильно...

1 ответ

Решение

Ты читаешь за конец MemoRxData.Lines, поскольку он начинается с нуля:

ll2 := MemoRxData.Lines.Count - 1;

ComPort1.WriteStr(MemoRxData.Lines[ll2] + #13#10;

(Ваши имена переменных ужасны, кстати. ll2 просто ужасно читать. Вы должны использовать значимые, легко читаемые имена переменных вместо таких ужасных ярлыков.)

Другие вопросы по тегам