님... 답변 감사합니다.
근데...
님께서 주신 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을 생성해야 되는지
: : 답변 부탁드립니다.
: : 감사합니다.