2014-05-17 1 views
2

2007 년부터 XE6으로 이전 중이며 사용자 자신과 제 3자가 작성한 여러 사용자 정의 구성 요소가 있습니다.Delphi XE6 - 사용자 정의 구성 요소 이미지를 팔레트에 표시하는 방법

델파이 2007에 구성 요소를 설치할 때 구성 요소를 라이브러리에 추가하면 dpk 파일에 동일한 이름의 DCR이 자동으로로드되어 이미지가 팔레트에로드됩니다.

delphi XE6에서는 이미지 파일을 자동으로로드하지 않고 사용자 정의 구성 요소마다 기본 이미지 만 얻습니다.

DCR 파일을 수동으로 프로젝트 원본에 추가했지만 작동하지 않거나 신뢰할 수없는 것으로 설명하는이 주제에 대한 일부 주제를 찾았습니다.

먼저 bpl을 다시 설치할 때 샘플 팔레트 (모든 구성 요소를로드 했음)는 방금 설치 한 모든 구성 요소를 삭제하고 아무것도 표시하지 않습니다.

델파이를 종료하고 다시 시작하면 구성 요소가 팔레트에 나타나지만 무작위로 일부 이미지는 여전히 기본 이미지입니다.

나는 다른 이미지가 올바른 이미지를 가질 때마다 그리고 다른 이미지가 기본 이미지를 가질 때마다 다른 결과를 얻는다. 그것들은 나타나지 않는 무작위로 나타납니다.

무슨 일이 일어나는가?

답변

0

이 문제에 대한 해결 방법을 찾은 것 같습니다.

나는 SynEdit가로드되어 있고 팔레트에 아이콘을 넣는 데 아무런 문제가 없다는 것을 알아 차 렸습니다. 그래서 어떻게 dpk를로드했는지 확인하기 위해로드했습니다.

각 구성 요소가 별도의 파일로 라이브러리에 추가 될 때 문제가있는 것으로 보입니다.

열쇠는 단 하나의 파일 (예 : MyLibReg.pas)을 만들고 각 구성 요소 파일을 장치의 "사용"섹션에 추가하는 것입니다. 등록 절차를 만든 다음 등록 절차에서 모든 구성 요소를 한 번에 등록하십시오. 각 파일을 검토하고 개별 등록 절차를 찾은 다음 클래스 이름을 복사하여 MyLibReg.pas의 등록 절차에 붙여 넣은 다음 해당 파일에서 해당 절차를 다시 수행해야합니다.

다음으로 이미지 편집기를로드하고 MyLibReg.dcr이라는 새 dcr 파일을 만듭니다.

다음 비트는 약간 지루합니다. 모든 사용자 구성 요소의 모든 dcr 파일을 이미지 편집기에로드하고 이미지를 MyLibReg.dcr에 복사하여 붙여 넣기 만하면 모든 비트 맵 이름을 수동으로 만들어야합니다.

dcr을 MyLibReg.pas와 같은 디렉토리에 저장하십시오.

XE6에서 구성 요소/설치 구성 요소를 선택하고 "새 패키지에 설치"를 선택하십시오. 단위 파일 이름의 은 MyLibReg.Pas로 이동하여 패키지를 계속 빌드하고 설치합니다.

보라, 모든 올바른 아이콘이 나타납니다.

XE6은 bpl 당 하나의 dcr 파일에서만 안정적으로 작동합니다.

관련 문제