Delphi XEでActiveXライブラリを作成する方法を紹介します。
メニューから「ファイル」→「新規作成」→「その他」を選択します。
新規作成ダイアログの左のツリービューから「Delphiプロジェクト」の「ActiveX」を選択し、「ActiveXライブラリ」を選択して、「OK」ボタンを押します。
プロジェクトが作成されました。
メニューから「ファイル」→「新規作成」→「その他」を選択します。
新規作成ダイアログの左のツリービューから「Delphiプロジェクト」の「ActiveX」を選択し、「オートメーションオブジェクト」を選択して、「OK」ボタンを押します。
オートメーションオブジェクトウィザードが表示されます。
CoClass名を入力して、「OK」ボタンを押します。
インターフェースとCoClassが作成されます。
インターフェースを右クリックして、ポップアップメニューから「新規作成」→「メソッド」を選択して、メソッドを作成します。
メソッドの名前を入力します。
ここでは「Inc」とします。
このメソッドは引数の数値に1を加えた値を返します。
パラメータタブを選択して、パラメータを設定します。
ここでは次のように設定します。
- 戻り値の型「long」
- パラメータ
- 名前「Number」
- 型「long」
- 修飾子「in」
メソッドをもう一つ作成します。
インターフェースを右クリックして、ポップアップメニューから「新規作成」→「メソッド」を選択して、メソッドを作成します。
メソッドの名前を入力します。
ここでは「Say」とします。
このメソッドは引数の文字列の頭に「Hello,」を加えた文字列を返します。
パラメータタブを選択して、パラメータを設定します。
ここでは次のように設定します。
- パラメータ
- 名前「Name」
- 型「BSTR」
- 修飾子「in」
- パラメータ
- 名前「Result」
- 型「BSTR*」
- 修飾子「out,retval」
修飾子は[…]ボタンを押して編集します。
「実装の更新」ボタンを押し、実装を更新します。
Unit1.pasを開き、処理を記述します。
function TExample.Inc(Number: Integer): Integer;
begin
Result := Number + 1;
end;
function TExample.Say(const Name: WideString): WideString;
begin
Result := 'Hello, ' + Name;
end;
ActiveXサーバーを登録します。
メニューから「実行」→「登録」を選択して、レジストリに登録します。
デバッグ用のプログラムを作成します。
C:\Project\sample.vbsを作成します。
Dim obj
Set obj = CreateObject("Project1.Example")
MsgBox obj.Inc(1)
MsgBox obj.Say("World")
メニューから「実行」→「実行時引数」を選択します。
ホストアプリケーションを次のように設定します。(WindowsXPの場合)
C:\WINDOWS\system32\cscript.exe
パラメータ欄にデバッグ用プログラムのパスを指定します。
実行ボタンを押すと、デバッグ用プログラムが実行されます。
デバッグ用プログラムから作成したActiveXプログラムが呼ばれます。
ブレークポイントでプログラムを停止し、ステップ実行でデバッグすることができます。