Почему я получаю ошибки компилятора при использовании встроенного в Delphi 2010 дистрибутива Indy?

Я только что установил Delphi 2010 и у меня проблемы с компонентом idHTTP. Если я брошу его в форму и попытаюсь скомпилировать, Delphi скажет, что:

[Ошибка DCC] IdCookieManager.pas (118): E2010 Несовместимые типы: 'TIdCookieList' и 'TIdCookieDomainList'

[Ошибка DCC] IdCookieManager.pas (172): E2003 Необъявленный идентификатор: 'IsValidCookie'

[Ошибка DCC] IdCookieManager.pas (236): E2010 Несовместимые типы: 'TIdCookieList' и 'TIdCookieDomainList'

[Неустранимая ошибка DCC] Unit4.pas (7): F2063 Не удалось скомпилировать использованный модуль 'IdCookieManager.pas'

В чем проблема? Я просто не понимаю. знак равно

PS Это Embarcadero® Delphi® 2010, версия 14.0.3593.25826


person yegorov-p    schedule 01.03.2010    source источник
comment
Используя полностью пропатченный Delphi 2010, я создал новое приложение, поместил компонент TIdHTTP в форму, и оно отлично скомпилировалось. У вас есть более подробные шаги?   -  person Bruce McGee    schedule 01.03.2010
comment
У меня также нет проблем с IdHttp в Delphi 2010.   -  person vcldeveloper    schedule 01.03.2010


Ответы (3)


Версия Indy, поставляемая с D2010, была неполной, хотя это могло быть исправлено в следующем обновлении. Если нет или если вы используете Delphi без исправлений, это только один из ряд проблем, с которыми вы можете столкнуться, в зависимости от того, какие части Indy вы используете.

Я предлагаю вам убедиться, что ваш Delphi полностью обновлен, и, возможно, также подумайте о получении последней версии Indy 10 из SVN-сервер AtoZed.

person Deltics    schedule 01.03.2010
comment
Согласен, неплохо получить последнюю версию Indy. Однако его Delphi полностью обновлен, и удаление компонента TIdHTTP (версии, поставляемой с Delphi 2010) в форме в новом проекте для меня работает как прелесть. - person Bruce McGee; 01.03.2010
comment
Обновление до более новой версии моментального снимка Indy 10 SVN - лучший вариант. С момента выпуска 2010 года было исправлено несколько ошибок, включая серьезные обновления классов поддержки файлов cookie. - person Remy Lebeau; 02.03.2010

IIRC, когда вы устанавливаете D2010, вы выбираете, устанавливать ли Indy 9 или 10. Мне кажется, что это случай вашего выбора для установки Indy 9, но пути к библиотекам в IDE видят исходный код Indy10 (или наоборот), в то время как он видит .DCU для другой версии в папке Lib.

Самым простым решением было бы переустановить Delphi и убедиться, что вы выбрали Indy 10, чтобы исходный и скомпилированный файлы .DCU совпадали. Другой вариант - полностью удалить Indy, а затем переустановить его из источника, предложенного @Deltics выше.

person Ken White    schedule 01.03.2010
comment
Нет возможности установить Indy 9 в D2010. Indy 9 несовместим с 2010 или даже 2009 годом. Он случайно попал в инсталлятор 2009 года. - person Remy Lebeau; 02.03.2010
comment
Реми, я, должно быть, думал о D2009 с обеими версиями. Спасибо за исправление. Тем не менее, похоже, что компилятор находит обе версии и запутывает меня; это обычная причина сообщений несовместимых типов, которые видит OP, когда это происходит для таких вещей, как TIDCookieList и TIDCookieDomainList. - person Ken White; 02.03.2010

Разве Delphi 2010 не поставляется с DCU для Indy?

Почему перетаскивание TIdHTTP в форму пытается скомпилировать исходные коды Indy? Вы добавили путь к исходным файлам Indy в путь к библиотеке?

Моя последняя версия Delphi - 2009 года, но папка с DCU, $(BDS)\Lib\Indy10, находится в верхней части пути к библиотеке.

person jasonpenny    schedule 02.03.2010