ActiveX 컨트롤 TImagXpress 사용시 property does not exist 에러 날 경우 델파이(Delphi)

이전에 델파이 5 와 ImagXpress 6 으로 만들어진 프로그램을 유지보수하고 있는데....
개발환경 꾸미는 것만해도 만만치 않아서 고생하고 있는 중이다.

일단 윈도우 7 에서 델파이 5를 설치하고 ImagXpress 를 설치하면...
Pegasus 라는 탭에 Xpress 라는 컴포넌트가 생기고 ActiveX 탭에 ImagXpress 라는 컴포넌트가 생긴다.

폼 위에 ImagXpress 컴포넌트를 올리고 실행하면 런타임시에 다음과 같은 에러가 뜬다.

property does not exist.

구글링을 해도 명확한 답이 없어서 삽질하다가 해결법을 찾았다.

일단 Component -> Install Packages 메뉴에서 Pegasus ImagXpress v6.0 Design Component 를 선택하고 Remove 한다.

그러면 Pegasus 탭의 Xpress과 ActiveX 탭의 ImagXpress 컴포넌트들이 사라질 것이다.

이제 컴포넌트를 다시 설치해본다.

Project -> Import Type Library 하면 나타나는 Import ActiveX 대화창에서 Pegasus ImagXpress Control v6.0 을 선택하고 Create Unit 하여 IMAGXPR6Lib_TLB.pas 파일을 새로 생성하여 덮어씌운다.

Component -> Install Packages 하면 나타나는 Project Options 대화창에서 Add 버튼을 누르고 C:\PegasusSoftware\ImagXpressv60\VCL\Delphi5\ImagXpr6d.bpl 를 선택하고 열기한다.

그럼 에러가 안 나타날 것이다.

원인은 모르겠지만 델파이 5를 설치하고 ImagXpress 6 을 설치하면 ActiveX 탭의 TmagXpress가 TOleServer 를 상속하는 것으로 정의되어 있다. 그런데 이렇게 되면 TImagXpress.Width 라는 속성이 존재하지 않게 된다.
그런데 앞에서처럼 지우고 다시 설치하면 TmagXpress가 TOleControl 를 상속하는 것으로 정의되어 있다.

이상하지만....여튼 IMAGXPR6Lib_TLB.pas 파일을 살펴보다가 알게 되었다.

정말...4월부터 일 시작해서 지금에 이르렀는대도...삽질이다.


덧글

댓글 입력 영역