0

I have a few conditionally compiled classes in my app.

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

...

{$IFDEF SOME_OPTION}
procedure TMyClass.Foo;
begin

end;
{$ENDIF}

That option SOME_OPTION is defined in "Project Options" - "Delphi Compiler" - "Conditional Defines" and in "Project Options" - "Resource Compiler" - "Directories and Conditionals" - "Defines a preprocessor symbol" for this project.

When I try to Ctrl+Click on their methods, nothing happens, code navigation don't want to work.

I use Delphi 2010. How can I solve this problem?

4

3 に答える 3

2

これはバグであり、修正される可能性はゼロです。

/ ウォーレン・P

于 2012-01-29T10:22:07.340 に答える
1

「プロジェクトオプション」-「リソースコンパイラ」...では適切な場所ではないと思いますが、
「プロジェクトオプション」-「Delphiコンパイラ」-「条件付き定義」にあります。

更新:
ここでDelphi XEを試してみましたが、定義されているかどうか、またはどこでCtrl+Clickを押しても問題ないようです。AndreasHausladenのIDEFixPack4.6.6とDDEvExtension2.5がインストールされ
ていることに注意してください。それらを使用しますか?

更新2:
同じユニットにある場合、SOME_OPTIONが定義されてない場合でも機能しているように見えますが、Fooが別のユニットから呼び出されている場合は機能しません。ただし、プロジェクトオプションで
適切に定義され、アプリケーションを再構築すると(Fooを呼び出す行に青い点が表示されます)、機能しているように見えます。次に、IDEはコンパイラを使用して、他のユニットの関数ソースを見つけることができます。

それを助けるために今のところ私が考えることができるのはそれだけです。そして、すでに述べたように、それはIDEの最良の部分ではありません...

于 2012-01-16T18:57:00.283 に答える
0

コンパイル ディレクティブが適切に定義されていないため、機能していません。ディレクティブは、 http://docwiki.embarcadero.com/RADStudio/en/Delphi_compiler_directivesの「IDEの使用」セクションで説明されているように定義する必要があります。条件付きディレクティブを変更した後にプロジェクトを再コンパイルすることもお勧めします。

于 2012-01-16T19:07:31.190 に答える