2014-03-19 2 views
1

사용자 정의 구성 요소 인 패키지를 만들었습니다. 패키지에는 * .pas 및 * .dfm이 들어 있습니다. 패키지를 컴파일하고 * .DCU 경로를 라이브러리에 추가합니다. 도구 팔레트에서 구성 요소를 삭제하여 응용 프로그램 폼을 테스트하고 델파이가 x.dfm을 찾을 수 없다고 불평합니다. 라이브러리 경로에 dfm을 추가하면 테스트 애플리케이션이 잘 컴파일됩니다. 나를 위해 그것은 내가하고있는 일을 다소 해킹한다. 내가 누락 된 것? 고맙습니다.왜 패키지 안에 x.dfm이 없습니까?

업데이트 1 : 내 구성 요소에는 사용자 지정 양식이 표시됩니다. 내 * .pas 파일은 {$ R * .dfm}

+0

.pas 파일에'{$ R x.dfm} '문이 있습니까? 패키지에 DFM이있는 이유는 무엇입니까? 구성 요소가 런타임에 사용자 정의 Form을 표시합니까? –

+0

이 질문은 XE2에만 해당되는 것이 아니므로 delphi 태그를 추가했습니다. –

답변

4

사용자 지정 구성 요소를 IDE에 설치하면 일반적으로 디자인 타임에만 사용됩니다.

구성 요소를 양식에 놓고 응용 프로그램을 컴파일 할 때 컴파일러와 링커에 대해 dcu 및 dfm 파일을 제공해야합니다. 이것은 다른 모든 사용 단위에 대해서도 동일합니다. Delphi의 lib 폴더를 살펴보십시오.

패키지로 컴파일하는 경우 패키지 dcp 파일에 포함 된 dcu 및 dfm 파일을 생략 할 수 있습니다. 이 경우 당신은 exe 파일과 함께 필요한 모든 bpl 파일을 제공해야합니다. 이것이 당신이 원하는 것인지 확실하지 않습니다.

+0

그게 슬픈 일입니다. 그래서 어쩌면 결국 런타임에 양식을 만들어야 할 것입니다. 감사. –

+0

아니요, 전혀 아닙니다. 패키지의 런타임 및 디자인 타임 버전을 한 번 빌드하면 코드 및 양식을 사용하여 (동적 또는 정적으로 선택하여) 찾아 링크 할 수 있어야합니다. –