![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Привет всем!!! Такой вопрос, только начал работать с ComPort-ом, решил прикрутить к Arduino программу написанную на Delphi, всё что делает этот код читает значения с потенциометра, значения (0 - 1023)...написал вот такой код:
Код:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); var s: String; begin ComPort1.ReadStr(s, Count); // читаем строку из com порта Memo1.Text := Memo1.Text + s; // выводим прочтённую строку (вот тут ошибка!!!) end; procedure TForm1.Memo1Change(Sender: TObject); var a,b:Integer; begin Memo1.Perform(EM_LINESCROLL,0,Memo1.Lines.Count-1); // авто прокрутка a:=Memo1.Lines.Count-1; // записываем последнюю строчку в переменную Edit27.Text:=Memo1.Lines[a]; // выводим в Edit последнюю строчку из Memo1 b:=StrToInt(Edit27.Text); end; Ошибка (is not a valid integer value) - не является допустимым целым значением ошибка возникает когда пытаюсь переканвертировать текстовое значение в числовое... не могу найти ответа...просьба писать тех кто знает, а не посылать в Google или F1... заранее спасибо!!! Последний раз редактировалось Nimph, 06.03.2013 в 14:02. |
#2
|
||||
|
||||
![]() число в гекс формате?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
|||
|
|||
![]() Цитата:
|
#4
|
||||
|
||||
![]() Да стопудов там числа в хек формате, вот и вываливает ошибку на значениях, типа 4B.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
|||
|
|||
![]() дело в том что мне надо потом брать от туда цифры например если значения больше 500 и меньше 600 повернуть например серву...
красным это то что приходит с Arduino, а синим это Edit27... Последний раз редактировалось Nimph, 07.03.2013 в 06:23. |
#6
|
|||
|
|||
![]() Цитата:
Ну, может там пробелы затесались еще. Если число точно не Hex, то можно сделать через StrToInt(Trim(Edit.Text)) или использовать TryStrToInt (он довольно хитро работает: возвращает True если удалось конвертировать, а вот если типа не удалось, то возвращает False, но в выходную переменную все-равно кладет то, что все-таки удалось сконвертнуть. По крайней мере у меня на D7 работает так). |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Nimph (07.03.2013)
|
#7
|
|||
|
|||
![]() lmikle - спасибо большое, помог =)))
b:=StrToInt(Trim(Edit27.Text)); видима действительно пробелы были при сборки числа... |