0

내 응용 프로그램에 조건부 컴파일 클래스가 몇 개 있습니다.

그 옵션 SOME_OPTION는 "프로젝트 옵션"에 정의되어
{$IFDEF SOME_OPTION} 
type 
    TMyClass = class 
    procedure Foo; 
    end; 
{$ENDIF} 

... 

{$IFDEF SOME_OPTION} 
procedure TMyClass.Foo; 
begin 

end; 
{$ENDIF} 

- "델파이 컴파일러는"- "조건부 정의"와 "프로젝트 옵션"에서 - "리소스 컴파일러"- "디렉토리 및 조건문"- "전 처리기 기호를 정의 "이 프로젝트에 대해.

메소드를 Ctrl + 클릭하면 아무 일도 일어나지 않지만 코드 탐색은 작동하지 않습니다.

저는 Delphi 2010을 사용합니다. 어떻게이 문제를 해결할 수 있습니까? "리소스 컴파일러"...
그러나 "프로젝트 옵션"에 - - "델파이 컴파일러"- "조건부 정의"

+2

경험 한 것처럼 SOME_OPTION이 정의 된 경우에도이 문제가 발생했습니다. 그것은 버그이며, 그 버그가 수정 될 확률은 0입니다. 현재 빌드의 프로젝트 옵션에서 정의 된 경우에도 마찬가지입니다. 그러나 .dproj 옵션에 직접적으로 지정하는 것이 아니라 options.inc 파일 내에 정의 된 경우 특히 어려울 수 있습니다. –

+0

@WarrenP와 동의 문제를 정확히 지적하지 못했습니다. 옵션과 함께 inc 파일을 사용하지만 로컬 정의 된 조건문도 사용합니다. 나는 컴파일의 습관에 있지만 컴파일하지 않기 때문에 dcu는 현재 정의 설정과 일치하지 않을 것입니다. 그럼에도 불구하고 조건부 정의와 Ctrl 키를 누른 상태에서 클릭하는 것은 서로에게 불리한 것처럼 보일 수 있으며 아마도 적어도 이전에 D2006 이후였습니다. –

답변

2

버그이며 수정 될 확률은 0입니다.

/워렌 P

1

나는 적절한 장소 "프로젝트 옵션"에 생각하지 않습니다.

업데이트 :
나는 여기서 델파이 XE를 사용했는데, 그것이 정의되어 있든 없든간에, 모든 경우에 Ctrl + Click이 중요하지 않은 것처럼 보였다.
Andreas Hausladen's IDE Fix Pack 4.6.6 및 DDEv Extension 2.5가 설치되어 있습니다. 사용하십니까?

업데이트 2 : SOME_OPTION 푸 다른 장치에서 호출하지 않을 경우, 하지만 정의되지 않은 경우에도
이 같은 단위, 작동하는 것 같다.
프로젝트 옵션 에서 응용 프로그램을 다시 작성하면 (Foo를 호출하는 줄에 파란색 점이 표시됨) 제대로 정의 된 것입니다. 그런 다음 IDE는 컴파일러를 사용하여 다른 장치에서 함수 소스를 찾을 수 있습니다.

내가 그걸 돕기 위해 생각할 수있는 전부입니다. 그리고 이미 언급했듯이, IDE의 가장 좋은 부분은 아닙니다 ...

+0

죄송합니다. 질문을 입력하는 동안 그 장소를 놓쳤습니다. 거기에도 포함됩니다. – Andrew

+0

상관없이 자원 컴파일러 설정에서 정의를 제거해야합니다. –

+0

IDE Fix Pack과 DDEv Extension 2를 사용했습니다.5 - 결과가 없습니다 – Andrew

0

컴파일 지시문을 잘 정의하지 않았기 때문에 작동하지 않습니다. 지시문은 여기 http://docwiki.embarcadero.com/RADStudio/en/Delphi_compiler_directivesIDE 섹션에 설명 된대로 정의해야합니다. 조건부 지시문이 변경된 후에도 프로젝트를 다시 컴파일하는 것이 좋습니다.

+0

Even {$ DEFINE SOME_OPTION}을 (를) 내 dpr 파일에 추가하면 변경되지 않습니다. – Andrew