【Delphi】OCXの作成

Delphiを使って、
OCXの作成をする機会があったのでメモ

【目的】
IEからOCXを登録して、
Windows内の環境変数を取得する。

【環境】
WindowsXP
・BDS2006

①BDSを起動して、
 File->New->Other->ActiveX Library
を選択する。

②今回はDLLではなくOCXを作成したいので、
 File->New->Other->ActiveX Form
 を選択し追加する。

③tlbファイルが生成される。
 Project1.dll -> Project1.ocxに変更されている。

④IActiveFormXにて
 New -> Property
 を追加 

⑤Refreshボタンを押すと、
 ActiveFormImpl1にFuncitonが追加される
 ・Get_Property1
・Set_Property

⑥上記メソッドに取得したい値をガリガリ書く。
 Returnの型を変更したい場合は、Project1.tlb
 で変更すること。

⑦Buildすると、Project1.ocxが生成される。

⑧Project1.ocx を含めたinfファイルを作成してCABファイルを生成する。
 例:inf
[version]
signature="$CHICAGO$"
AdvancedINF=2.0

[Add.Code]
Project1.ocx=Project1.ocx

[Project1.ocx]
file-win32-x86=thiscab
clsid={9F2DB8B7-29F1-40D3-9CC3-08F919D252C5}
RegisterServer=yes

ここで注意するのはclsidことクラスIDの定義
 Project1_TLB.pas内にあるCLASSからIDを取得すること
CLASS_ActiveFormX: TGUID = '{9F2DB8B7-29F1-40D3-9CC3-08F919D252C5}';

⑨CABARC.EXEを使って、CABファイルを作成する。
 コマンドライン
 CABARC -s 6144 n Project1.cab Project1.ocx Project1.inf

CABARCの使い方は下記などを参照のこと
 http://eternalwindows.jp/browser/activex/activex07.html

⑩生成されたCABファイルをWEBページに置く

⑪HTML側で確認するためのコード










 

⑫WebBrowserを起動し、URLを入力すると、
 ActiveXの入力を促される。
 ActiveXのインストールを許可しておくか、認証しておくこと

 インストールすると、取得した値が表示される。

                                                                                                                      • -

クラスIDを同一にすること。
今回はVersion管理していないので注意すること。