2010-01-02 2 views
0

문제가 있습니다. 나는 그것을 설명하려고 노력할 것이다.단위 파일 경로 단위 파일로 사용

클래스가 있고 새로운 기능을 가진 단위가 있습니다.

D3BF4E849ACC45249B990F802EFB1F15 \ UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E \ UnitFile1.pas

그들 모두가 같은 클래스 : IClass_1 = 클래스

이 파일의 다른 버전에 대한 코드 번호를 사용하여 임.

다른 단위 파일 (UnitFile2.pas)은 해당 단위 파일 (UnitFile1.pas)을 사용합니다.

또한 두 번째 단위 파일 (UnitFile2.pas)에는 다른 버전이 있습니다. UnitFile2.pas \

F94C439C822E490DB228F2C16EF2C190 14CEEFAFF1D64DDD8CBDEDD334D4A3FF \ UnitFile2.pas

둘 다 같은 클래스가 : IClass_2 = 클래스 (IClass_1)

지금 문제가 시작을; "D3BF4E849ACC45249B990F802EFB1F15 \ UnitFile1.pas"을 필요로

"F94C439C822E490DB228F2C16EF2C190 \ UnitFile2.pas" "8DC8977E7A7B469AACFE3CC77CA7075E \ UnitFile1.pas"

을 필요로하지만, 파일 이름은

"14CEEFAFF1D64DDD8CBDEDD334D4A3FF \ UnitFile2.pas" 같은 (이것과 같은 시스템이 필요합니다. 그래서 그들은 동일합니다). 그리고 단위 파일에서, 델파이는 저렇게 쓰지 않습니다.

파일 F94C439C822E490DB228F2C16EF2C190 \ UnitFile2.pas; 은 'D3BF4E849ACC45249B990F802EFB1F15 \ UnitFile1.pas'에서 UnitFile1을 사용합니다.

나는 내 문제를 말할 수 있기를 바랍니다. 컴파일러에게 어떤 유닛 파일을 그 경로와 함께 사용하길 원한다면 어떻게 할 수 있습니까? (델파이 -7을 사용하는 임)

답변

4

유닛 이름을 다른 이름으로 지정하면 두 유닛을 모두 프로젝트에 포함시킬 수 있습니다.

그런 다음 프로젝트 옵션에서 단위 별칭을 사용하여 실제 단위 중 하나 또는 다른 것으로 확인되는 "가상 단위 이름"을 만듭니다. 이 중 하나 또는 다른 것을 "사용"하는 단위에서 단위 별칭 - "가상 이름"을 참조하십시오.

당신의 단위에서

uses 
    ... 
    UnitFile1a in '....\UnitFile1a.pas', 
    UnitFile1b in '....\UnitFile1b.pas', 
    ... 

: 프로젝트 옵션에서

uses 
    UnitFile1; 

중 하나 인 단위 별칭 :

UnitFile1=UnitFile1a 

또는

UnitFile1=UnitFile1b 

당신은 수있는 조선 민주주의 인민 공화국의 다음 중 어느 것을 사용하여 프로젝트를 구축하십시오. "UnitFile1?" 단위는 단순히 단위 별칭을 변경하여 적절합니다.

2

검색 경로에 "D3BF4E849ACC45249B990F802EFB1F15"및 "F94C439C822E490DB228F2C16EF2C190"을 넣으려면 프로젝트 옵션을 구성해야합니다. 코드에서 단위 경로를 지정할 수 없습니다.

0

내가 아는 한 동일한 이름의 두 단위를 프로젝트에 추가 할 수 없습니다.

프로젝트 옵션에 올바른 폴더를 추가 할 수 있습니다, 또는 당신이 에 필요한 단위를 추가 할 수 있습니다 '보기 - 프로젝트 관리자' 화면 (프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하고 를 '추가'를 선택 선택. 정확한 단위는올바른 폴더에, 당신은 프로젝트의 모든 형태와 다른 단위에있는 단위 이름을 사용할 수 있습니다보다에서.

당신이 그런 비밀 폴더 이름을 사용하고 싶을 왜 나를 넘어 정말 당신이 왜이 일을하고 싶어하는지에 대해서는 전혀 생각할 수 없습니다.

+0

나는 그것을 그렇게 설명 할 수 있습니다. 예 저는 수업이 있으며 정시에 개발할 예정이며 다른 버전이 있습니다. 그러나 클래스의 이름은 여전히 ​​동일 할 것이고 단위 파일의 이름이 될 것입니다. 하지만이 장치 파일을 다른 폴더에 넣을 것입니다. 폴더의 이름은 내 질문에 쓴 것과 같습니다. 예 : F94C439C822E490DB228F2C16EF2C190 \ classfile.pas D3BF4E849ACC45249B990F802EFB1F15의 \의 classfile.pas ... 그래서 내가 원하는 경우 사용할 버전, 내가 그것을 폴더 이름입니다하지만 동일한 단위의 파일 이름으로 사용하는 것이다. C에서 그렇게 할 수 있습니다. #include "D3BF4E849ACC45249B990F802EFB1F15 \ classunit.pas" 델파이는 허용하지 않습니다. – tcak

+0

예, 가능합니다. 그리고 프로젝트 레벨 (모든 소스 파일이 아님). 그냥 내 대답 좀 봐 : '보기 - 프로젝트 관리자', 프로젝트 "Project1.exe"(또는 당신이 당신의 프로그램이라고 부르는)의 이름을 마우스 오른쪽 버튼으로 클릭하고 '추가'를 선택하십시오.올바른 폴더에서 올바른 단위를 선택하고 원본 파일에서 단위 이름을 사용하십시오. 나중에 다른 버전을 원한다면 먼저 프로젝트 관리자에서 첫 번째 버전을 삭제하고 새 버전을 '추가'하십시오. – Edelcom

+2

** 왜 그런 ** 비밀 폴더 이름을 사용해야하는지 궁금합니다 ** 프로그래머가된다는 것은 미래의 실수로부터 자신을 보호하는 것입니다. 이러한 암호 화 (비 의미있는) 폴더를 사용하면 자신이 사용할 수 없게됩니다 (폴더 대신 Version1 ','Version2 '또는'Version_0911 '(2009 년 1 월) 및'Version_1001 '(2010 년 1 월)이 있지만 모든 프로그래머는 특정 스타일을 가지고 있습니다. – Edelcom

2

나는이 방법으로 문제가 해결 있는지 잘 모르겠지만,이 같은 장치 이름에 점을 넣을 수 있습니다 네임 스페이스의 개념은이 :

오히려 다른 디렉토리에서 동일한 파일 이름을하는 것보다 ...

D3BF4E849ACC45249B990F802EFB1F15 \ UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E \ UnitFile1.pas

F94C439C822E490DB228F2C16EF2C190 \ UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF \ UnitFile2.pas

,369

D3BF4E849ACC45249B990F802EFB1F15.UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E.UnitFile1.pas

F94C439C822E490DB228F2C16EF2C190.UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF.UnitFile2.pas

그런 다음 전체를 사용할 수 있습니다 : 1,363,210

당신은 파일 이름 접두어를 사용할 수 있습니다 uses 절의 파일 이름 (예 :

uses 
    D3BF4E849ACC45249B990F802EFB1F15.UnitFile1; 

예, 이 델파이 7 작동합니다.

관련 문제