2017-03-17 2 views
0

Delphi에서 제공하는 rsvars.bat 파일을 사용하여 명령 줄을 통해 Delphi 파일을 작성하려고합니다 (Delphi XE2를 사용 중입니다). 대부분의 것들은 괜찮아 보이지만, 나는 TRichView으로 발생하는 몇 가지 오류가 있습니다.TRichView 구성 요소를 사용하여 rsvars.bat 실행

{$IFNDEF RVOLDTAGS} 
    TRVTag = type String; 
    {$ELSE} 
    TRVTag = Integer; 
    {$ENDIF} 

이이 스레드를 기반으로, TRVTags이 String으로 정수에서 변경된 이전 버전과의 호환성을 허용하기 위해이 방법을 수행 할 것으로 보인다 : TRichView은과 같이 변수 TRVTag을 정의하는 파일의 이름 RVStyle.pas을 제공합니다. http://www.trichview.com/forums/viewtopic.php?f=2&t=6377

사용자 정의 컨트롤 중 하나에서 Integer ItemIndex를 TRITagTag에 요청하여 TRVTag를 요청합니다.

Result := GetItemTag(ItemIndex); 

델파이를 통해 파일을 만들 때하지만 난 '비교할 수없는 유형'오류를 수신하고 명령 줄을 통해 파일을 만들 때이 잘 작동합니다. 특정 오류는 다음과 같습니다

Incompatible types: 'Integer' and 'TRVTag' 

이것은 우리의 사용자 지정 컨트롤에서 몇 군데를 일이 나타납니다, 경우에 따라서는 호환되지 않는 유형의 '정수'와 'TRVTag'다른 시간이 호환되지 않는 유형의 '캐릭터'와 '정수라고 말한다.

: 나에게

그것은 RVStyle.pas에 정의 또는 건물에 대한

내 배치 파일과 같이 보이는 빌드가 어떻게 든 TRVTag의 정의를 따기되지 않는 명령 줄을 통해 구축 할 때처럼 보인다

cd c:\frontend\v10 
call rsvars.bat 
MSBuild del12\del12.dproj 
PAUSE 

XE2 자체를 통해 빌드 할 때와 같은 호환되지 않는 유형 오류없이 이러한 파일을 빌드 할 수있게 해주는 배치 파일에 추가 할 수있는 것이 있습니까?

+3

'RVOLDTAGS'가 때때로 정의되고, 다른 것들은 정의되지 않는 것처럼 들립니다. 프로젝트에서 빌드 구성을 사용합니까? 명령 행에서 구성을 지정하지 않습니다. 아마도 프로젝트가 IDE에서 빌드 될 때 하나의 구성을 컴파일하고 있지만 명령 행에서 빌드하면 다른 구성을 컴파일하는 것입니다. –

+0

그게 내가 원하는 것 같다. 플래그를 추가하자마자 MSBUILD 명령의 끝에 "/ t : Build/p : Configuration = Debug"명령이 모두 적용되었습니다. –

+0

그건 잘못된 솔루션입니다. 당신이해야 할 일은 적절한 장소에서 조건을 정의하는 것입니다. 디버그 구성에서만 정의됩니다. 루트 구성에 정의되어 있어야합니다. –

답변

1

코드에서 RVOLDTAGS이 정의 된 것으로 가정합니다. 디버그 구성에서 정의했지만 다른 구성에서는 정의하지 않았습니다. 구성은 상속을 사용합니다. 이렇게하면 파생 된 구성에 따라 속성을 상속하거나 일부 구성에 대해서만 속성을 정의하거나 일부 구성에 대해 속성을 재정의 할 수 있습니다.

코드에 따라 RVOLDTAGS을 모든 구성에 대해 정의해야합니다. 따라서 다른 모든 구성이 상속 된 루트 구성에서이 구성을 정의해야합니다. 디버그 구성에서 정의를 제거하고 루트 구성에 다시 도입하십시오.

관련 문제