Разрывы навигации по коду внутри блоков $ IFDEF в Delphi 2010 - PullRequest
0 голосов
/ 16 января 2012

У меня есть несколько условно скомпилированных классов в моем приложении.

{$IFDEF SOME_OPTION}
type
  TMyClass = class
    procedure Foo;
  end;
{$ENDIF}

...

{$IFDEF SOME_OPTION}
procedure TMyClass.Foo;
begin

end;
{$ENDIF}

Этот параметр SOME_OPTION определен в «Параметры проекта» - «Delphi Compiler» - «Условные определения» и в «Параметры проекта» -«Resource Compiler» - «Каталоги и условные выражения» - «Определяет символ препроцессора» для этого проекта.

Когда я пытаюсь нажать Ctrl + Click по их методам, ничего не происходит, навигация по коду не хочет работать.

Я использую Delphi 2010. Как я могу решить эту проблему?

Ответы [ 3 ]

2 голосов
/ 29 января 2012

Это ошибка, и вероятность ее исправления равна нулю.

/ Уоррен П

1 голос
/ 16 января 2012

Я не думаю, что правильное место в «Параметры проекта» - «Компилятор ресурсов» ...
Но в «Параметры проекта» - « Delphi Компилятор» - «Условные определения»,

Обновление:
Я пытался в Delphi XE здесь, на работе, и было ли это определено или нет, или где, кажется, не имеет значения для Ctrl + Click, чтобы работать для меня во всех случаях.
Обратите внимание, что у меня установлен пакет исправлений IDE 4.6.6 Андреаса Хаусладена и DDEv Extension 2.5.Используете ли вы их?

Обновление 2:
Кажется, что работает в том же модуле, даже когда SOME_OPTION не определено, , но нет, когда Foo вызывается из другого устройства.
Кажется, что работает, когда это правильно определено в параметрах проекта и , вы перестраиваете приложение (вы видите синюю точку на линии, вызывающей Foo).Тогда IDE может использовать компилятор, чтобы найти источник функции в другом модуле.

Это все, что я могу придумать, чтобы помочь с этим.И, как уже было сказано, это не лучшая часть IDE ...

0 голосов
/ 16 января 2012

Не работает, потому что вы не определили свои директивы компиляции. Директивы должны быть определены, как описано здесь http://docwiki.embarcadero.com/RADStudio/en/Delphi_compiler_directives в Использование раздела IDE . Хорошей практикой также является перекомпиляция проекта после изменения условных директив.

...