|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Delphi XE7 - проблемы с COM-портом
Программа - USB-термометр более-менее успешно компилируется DELPHI 7SE.
Этот же проект запускается (компилируется) редактором Delphi XE7, но COM-порт, к которому подключен термометр - не распознается. Для наглядности - во вложении скрин. Из первой картинки видно, что при компиляции DELPHI 7SE порт СОМ1, к которому подключено устройство, распознается (порт в меню выделен цветом). С Delphi XE7 я не могу добиться распознавания порта (последняя картинка). Помогите решить эту проблему с распознаванием порта. Заранее благодарю. И еще ... Аналогичная проблема была и с Delphi 2009. Думаю - мудрит Embarcadero: более поздняя версия продукта не всегда поддерживает проекты, собранные на более ранних версиях. Последний раз редактировалось cadil, 04.01.2016 в 21:09. |
#2
|
|||
|
|||
Видимо, опять непонятки с AnsiString и UnicodeString.
|
#3
|
|||
|
|||
Цитата:
Последний раз редактировалось cadil, 04.01.2016 в 21:32. |
#4
|
|||
|
|||
Принудительно указать тип AnsiString вместо String.
|
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
cadil (12.01.2016)
|
#5
|
|||
|
|||
Цитата:
Проект на ХЕ7 компилируется, но с тем же отрицательным результатом - СОМ-порт не распознается, на 7SE - проект без проблем запускается и с новым типом переменных. Какие версии еще стоит проверить, где копать? Последний раз редактировалось cadil, 05.01.2016 в 22:03. |
#6
|
|||
|
|||
Покажи код - как ты определяешь порт.
Может там еще надо и др. функцию использовать принудительно (xxxA, а не xxxW, на которую замаплена оригинальная xxx). И, кстати, вот еще почитай: http://stackoverflow.com/questions/1...ports-in-win32 Последний раз редактировалось lmikle, 06.01.2016 в 01:47. |
#7
|
|||
|
|||
Цитата:
Ты был прав! При принудительной замене String на AnsiString, команды, где используются массивы, не выполняются. Например, Код:
function HConvert(E:TEdit; var H:Byte):Boolean; var Hp:Byte; S:String; Error:Boolean; begin Hp:=H; Result:=true; Error:=false; S:=UpperCase(E.Text); //S:= AnsiString(S); case length(S) of 1: if ConvD(S[1])>=0 then H:=ConvD(S[1]) else Error:=true; ... Заранее благодарю за помощь. |