2014-01-31 8 views
0

Я использую библиотеку Synapse в проекте Delphi для создания сети.Pascal Delphi - Необъявленный идентификатор

Когда я пытаюсь использовать один из типов, которые определены во внешних единицах, то есть: «TTCPBlockSocket», он имеет красную подчеркивание и говорит «Undeeclared Identifier» TTCPBlockSocket ».

Файлы находятся в правильных папках, и инструкция 'uses' может их найти и не отображать ошибок.

Странно, что у меня была идентичная настройка в другом проекте, и ошибок в этом проекте не было.

В качестве примечания: я не могу установить/отредактировать программное обеспечение/настройки, поэтому я не могу добавить никаких исправлений.

+2

Вы можете компилировать программу? Является ли ошибка ошибкой компиляции или ошибкой представления IDE? –

ответ

8

Это известная ошибка в Error Insight. Он существует, поскольку Error Insight был впервые представлен в Delphi 2005 или 2006 году и до сих пор существует в Delphi XE5.

Это связано с использованием другого компилятора для Error Insight, по-видимому, который не имеет доступа к тому же набору символов, который используется компилятором Code Insight (тот, который помогает находить символы в редакторе кода) или компилятор командной строки (тот, который использовался для компиляции вашего кода для приложения или пакета). Поэтому он использует только файлы, которые на самом деле ссылаются в файле проекта (.dpr), чтобы найти символы, а так как большинство файлов в предложении uses в вашем коде не находятся в .dpr, он не может их найти.

Есть два исправления (одно, что очень легко, и тот, который работает, но боль в зад):

  1. (Простой один). Полностью отключите «Проникновение ошибок», в «Инструменты-> Параметры», раздел «Параметры редактора», «Анализ кода»; просто снимите флажок для Error Insight. Я предпочитаю этот вариант, потому что Error Insight не работает должным образом, и он избегает раздражения от необходимости использовать другой вариант каждые 10 минут. Это первое, что я делаю, когда устанавливаю новую версию IDE и вижу красные подчеркивания.

  2. (Путь боли). Используйте Project-> Добавить в проект для каждого устройства, содержащего один из подчеркнутых символов. Это добавляет ссылку на каждую единицу в файле проекта .dpr, что приводит к его существенному увеличению. Это боль, потому что вам обычно приходится делать это для каждого отдельного устройства (по моему опыту, включая те, которые являются частью стандартного VCL/RTL), которые еще не были добавлены, и это очень быстро становится раздражающим. Ошибка Insight не говорит вам ничего о том, что быстрый Ctrl + F9 все равно не будет, ИМО.

+0

Я попробую второй вариант – JamEngulfer

+0

@ JamEngulfer221: Ты - обжора для наказания. :-) Ты * сделал * см. Список негативов, а также примечание об этом, в любом случае, не полезно, верно? –

+0

Я делаю это второй способ FWIW. Ненавижу полагаться на пути поиска. Каждому их, хотя. –

Смежные вопросы