Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[13937] Re:Re:Re:[질문] delphi2010 activex 생성과 delphi7 activex 생성 방법이 다른가요...
박지훈.임프 [cbuilder] 2052 읽음    2011-11-24 16:47
Register ActiveX Server 메뉴는 델파이 버전마다 이름이 조금씩 다를 뿐이고 그 메뉴가 맞습니다.
그런데 그걸 실행했을 때 에러가 난다는 건 액티브X 등록이 실패했다는 건데요. 그건 아예 지금 개발중이신 액티브X 자체가 문제가 있다는 거니까 TOLEControl 클래스가 있고 없고 이전에 더 큰 문제가 소스에 있다는 얘기겠지요. 컴파일은 되시는 건지요? 개발중인 액티브X 소스의 현 상태에서 문제부터 찾으셔야 할 것 같습니다.


ji 님이 쓰신 글 :
: 님... 답변 감사합니다.
: 근데...
: 님께서 주신 embarcadero에 가서 보니... 2010 버전과 또 다르네요...
:
: Click Run | Register Server
: 라고 되어 있는데, 2010에서는 Register ActiveX Server 메뉴가 있고,
: 이 메뉴 실행했더니 '지정되지 않은 오류'  메시지가 뜨네요...
:
: Click Component | Import Component
: 라고 되어 있는것도... 2010에서는 없는건지 못찾는건지... ㅠ_ㅠ
:
: 음...
: 어떻게 해야될 지 모르겠네요.
: Type Library에서 함수를 만들어서 함수 외형이 코딩되어 있지 않고...
: 일일이 모두 코딩을 해줘야 되는건지 모르겠네요...
:
:
:
: 박지훈.임프 님이 쓰신 글 :
: : 델파이 2009 버전부터 액티브X 컨트롤 코드의 구현 방식이 바뀌었습니다. 2007 버전까지는 TOLEControl 래퍼 클래스를 썼었는데 2009 버전부터는 안쓰죠. 구현 방식이 바뀐 후로 여러 장점들이 생겼는데, 간혹 이 TOLEControl 래퍼 클래스에 코딩을 추가해야 하는 경우가 있어서 곤란하기도 합니다. 이 문제에 대해 엠바카데로에서 대안을 내놓겠다고 했었는데, 아직 해결이 안되고 있습니다.
: :
: : 대신 약간의 꽁수를 내놨는데요. 작업중인 프로젝트로 생성한 액티브X를 임포트하라는 것입니다. 그러면 다시 xxx_TLB.pas 파일이 생성되죠. 델파이 2009 이후 버전에서 새 액티브X를 생성할 때의 xxx_TLB.pas에는 TOLEControl 래퍼가 없지만, 기존의 액티브X를 임포트했을 때의 xxx_TLB.pas에는 이전 버전들과 마찬가지로 TOLEControl 래퍼 구현이 추가되기 때문입니다.
: :
: : 그러니까, 임포트할 때 생성되는 xxx_TLB.pas 파일을 원래의 xxx_TLB.pas 파일에 덮어씌우시면 됩니다. 두 파일의 차이는 TOLEControl 래퍼 클래스의 존재 여부 뿐입니다.
: :
: : 이 방법은 제가 알아낸 것은 아니고, 버그 리포트 69080에 대해 엠바카데로 QA팀에서 알려준 방법입니다.
: : http://qc.embarcadero.com/wc/qcmain.aspx?d=69080
: :
: : 그럼...
: :
: :
: : ji 님이 쓰신 글 :
: : : delphi2010으로 ocx를 처음 만들어봅니다.
: : : 메뉴에서 ActiveX Library 선택하고, Active Form을 선택해서 프로젝트 생성(프로젝트명:PpsTo)은 했습니다.
: : :
: : : delphi7에서 _TBL.pas 파일을 보면
: : : GUID가 생성된 부분(PpsTo = dispinterface 라고 코딩되어 있는 부분) 아래에
: : : OLE Control Proxy class declaration 이라는 주석이 보이고,
: : : TPpsToOnKeyPres = proceduere(ASender...) of object;
: : : 라고 코딩이 되어 있습니다.
: : : 그리고, type library에서 function을 추가하면
: : : 이 부분에 추가된 함수가 코딩이 되는 것 같은데,
: : :
: : : delphi2010에서는
: : : OLE Control Proxy class declaration 이라는 주석 부분이 아예 보이지 않습니다.
: : : PpsTo = dispinterface 라고 코딩되어 있는 부분 아래에 바로
: : :
: : : implementation
: : : uses ComObj;
: : : end.
: : :
: : : 이라고 코딩되어 있습니다.
: : : InitControlData, CreateControl 등의 함수도 보이지 않습니다.
: : :
: : : 원래 그런건지... 아니면 뭔가 잘못 만든건지... 모르겠습니다.
: : : 어떻게 ocx을 생성해야 되는지
: : : 답변 부탁드립니다.
: : : 감사합니다.

+ -

관련 글 리스트
13934 [질문] delphi2010 activex 생성과 delphi7 activex 생성 방법이 다른가요... ji 1865 2011/11/23
13935     Re:[질문] delphi2010 activex 생성과 delphi7 activex 생성 방법이 다른가요... 박지훈.임프 2101 2011/11/24
13936         Re:Re:[질문] delphi2010 activex 생성과 delphi7 activex 생성 방법이 다른가요... ji 2018 2011/11/24
13937             Re:Re:Re:[질문] delphi2010 activex 생성과 delphi7 activex 생성 방법이 다른가요... 박지훈.임프 2052 2011/11/24
13938                 Re:Re:Re:Re:[질문] delphi2010 activex 생성과 delphi7 activex 생성 방법이 다른가요... ji 2491 2011/11/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.