VCL コントロールを基にした ActiveX コントロールの生成
VCL コントロールを基に ActiveX コントロールを生成するには、[ActiveX コントロール ウィザード]を使用します。 VCL コントロールのプロパティ、メソッド、イベントが、ActiveX コントロールのプロパティ、メソッド、イベントになります。
[ActiveX コントロール ウィザード]を使う前に、生成する ActiveX コントロールのベースとなる実装を提供する VCL コントロールをどれにするかを決める必要があります。
[ActiveX コントロール ウィザード]を起動するには:
- 次のいずれかを選択します:
- [ファイル|新規作成|その他...|C++Builder|ActiveX|ActiveX ライブラリ]
- [ファイル|新規作成|その他...|Delphi|ActiveX|ActiveX ライブラリ]
- これにより、インプロセス ActiveX オブジェクトのホストとして使用できる DLL(ダイナミック リンク ライブラリ)プロジェクトが作成されます。
- 次のいずれかを選択します:
- ファイル > 新規作成 > その他... > C++Builder > ActiveX > ActiveX コントロール
- ファイル > 新規作成 > その他... > Delphi > ActiveX > ActiveX コントロール
- ActiveX コントロール ウィザードで、新しい ActiveX コントロールでラップする VCL コントロールの名前を選択します。 このダイアログには、指定可能なコントロール、つまり、TWinControl の下位クラスのコントロールのうち、RegisterNonActiveX 手続きを使って ActiveX との互換性がないと登録されたものを除くすべてのコントロールが、含まれています。
ヒント: 目的のコントロールがドロップダウン リストに含まれていない場合は、そのコントロールを IDE にインストールしたかどうか、そのユニットをプロジェクトに追加したかどうかを確認してください。
VCL コントロールを選択すると、CoClass(ActiveX ラッパの実装ユニット)と ActiveX ライブラリ プロジェクトの名前が ActiveX コントロール ウィザードによって自動的に生成されます。 (現在 ActiveX ライブラリ プロジェクトを開いていて、そこに COM+ イベント オブジェクトが含まれていない場合には、現在のプロジェクトが自動的に使われます)。 これらはいずれもウィザード内で変更可能です(ただし ActiveX ライブラリ プロジェクトを既に開いている場合を除きます。その場合はプロジェクト名の編集はできません)。
ウィザードは常に、スレッド モデルとして [アパートメント スレッド モデル] を指定します。 ActiveX プロジェクトに含まれるコントロールが 1 つしかない場合には、これで問題ありません。 しかし、プロジェクトにさらにオブジェクトを追加する場合は、スレッド サポートを行う必要があります。
ActiveX コントロールに設定できるさまざまなオプションの詳細は、「[アクティブ フォーム ウィザード]または[ActiveX コントロール ウィザード]」を参照してください。
ウィザードを終了すると、以下のものが生成されます。
- ActiveX ライブラリ プロジェクト ファイル。ActiveX コントロールの起動に必要なコードがここに記述されます。 通常、このファイルを変更することはありません。
- タイプ ライブラリ。コントロールの CoClass、クライアントに公開するインターフェイス、これらに必要なあらゆる型定義がここに定義されます。 タイプ ライブラリの詳細は、「タイプ ライブラリの操作:概要」を参照してください。
- ActiveX 実装ユニット。ここで TActiveXControl の下位クラスである ActiveX コントロールが定義、実装されます。 この ActiveX コントロールは完全に機能する実装であり、開発者側で特別な作業は必要ありません。 しかし、ActiveX コントロールがクライアントに公開するプロパティやメソッドやイベントをカスタマイズしたい場合には、このクラスを変更することができます。