![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Программа - 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;
...Заранее благодарю за помощь. |