내용 :
현재 제가 웹 상에서 sub form을 내장한 OCX에서 sub form을 실행해서 다른 업무를 처리하는 시스템을
IE7 에서의 정상 작동하는지를 테스트하고 있답니다.
아직 IE7에서의 델파이 OCX 작동에 관한 정보가 올라오지 않은 것 같아 정보를 공유하고자 합니다.
증상은 아래와 같습니다.
테스트 환경 :
플랫폼 : Windows XP Media Center Edition
Internet Explorer Version : 7,0,5730,11
Language : Delphi 5
발생 증상 :
sub Form이 포함된 ActiveX 를 델파이5로 컴파일하여 IE7에서 sub form를 실행할 때
IE7 뒤로 숨겨저 sub form 에서의 작업을 할 수 없는 증상이 발생하였습니다.
처음에서는 IE7에 추가된 Tab 메뉴와의 호환성 문제를 의심하여 접근하였으나 해답을 찾지 못하였습니다.
그래서, 예전부터 Delphi에서 ActiveX 실행 시 DAX Error가 발생했던 것에 초점을 맞추어
ActiveX 생성에 필수 라이브러리인 ComObj.pas 와 AxCtrls.pas 의 소스를 일부 수정하는 것으로 문제를 해결하였습니다.
두개의 라이브러리는 Delphi7버전에 있는 것을 Delphi5에 맞에 재수정한 것이며
테스트 결과 이상없이 잘 컴파일 되어 IE7에서 정상 동작함을 확인하였습니다.
설치방법 :
우선 기존 소스파일은 백업을 해두시고 아래 경로게 파일을 위치하시면 됩니다.
ComObj.pas 위치 : $(DELPHI)\Source\Rtl\Sys
ComObj.dcu 위치 : $(DELPHI)\Lib
AxCtrls.pas 위치 : $(DELPHI)\Source\Vcl
AxCtrls.dcu 위치 : $(DELPHI)\Lib
테스트 후 C:\Windows\Downloaded Program File 에서 fOCXSubFormTest_ForIE7 Control 를 제거
PS. VISTA 환경에서의 ActiveX 설치 및 사용을 위한 .manifest, .rc 사용 예도 소스에 포함되어있습니다.
여기는 용량제한으로 파일이 안올라가는 관계로
파일 다운로드는 아래에서 하시기 바랍니다.
http://www.delphi.co.kr 자료실에
"델파이5로컴파일된activex의sub form실행시IE7뒤로숨는문제해결_axctrls_comobj_manifest" 로 검색
http://www.delmadang.com/ 자료실에
"델파이5로컴파일된activex의sub form실행시IE7뒤로숨는문제해결" 로 검색
하시면 나올겁니다.