[アクティブ フォーム ウィザード]または[ActiveX コントロール ウィザード]

提供: RAD Studio
移動先: 案内検索

[ファイル]メニュー への移動

ファイル > 新規作成 > その他... > <パーソナリティ> > ActiveX > アクティブ フォーム

ファイル > 新規作成 > その他... > <パーソナリティ> > ActiveX > アクティブ コントロール

  • [アクティブ フォーム ウィザード]は、ActiveX ライブラリ プロジェクトにアクティブ フォームを追加するために使用します。
  • [ActiveX コントロール ウィザード]は、指定の VCL コントロールから ActiveX コントロールを作成するために使用します。 VCL コントロールのプロパティ、メソッド、およびイベントは、ウィザードが作成する ActiveX コントロールのプロパティ、メソッド、およびイベントになります。

メモ: [アクティブ フォーム]または[ActiveX コントロール]を作成できるようにするには、はじめに[ActiveX ライブラリ]を作成する必要があります。 アクティブ フォーム および ActiveX コントロール の各ウィザードは、ActiveX ライブラリが作成されるまでは、新規項目のリストで有効になりません(ActiveX ライブラリ を作成すると、動的 リンク ライブラリ [DLL] プロジェクトが作成され、これが、プロセス内の ActiveX オブジェクトのホストとなります)。 手順については、「COM ウィザードを使用する」を参照してください。

項目 説明

CoClass 名

実装するコントロールの名前を指定します。 これは、タイプ ライブラリに表示される CoClass 名です。 生成された実装クラスは、これと同じ名前で先頭に 'T' が付きます。

説明

作成中のコンポーネントについての任意の説明を入力します。

スレッド モデル

(詳細は下記セクション参照)

スレッド モデルを選択して、COM がアクティブ フォームや ActiveX コントロールのインターフェイス呼び出しをシリアル化する方法を示します。 選択したスレッド モデルによって、コントロールの登録方法が決まります。 実装は、必ず、選択したモデルに従って行う必要があります。ウィザードは常に、スレッド モデルとして[アパートメント スレッド モデル]を指定します。 ActiveX プロジェクトに含まれるコントロールが 1 つしかない場合には、これで問題ありません。 しかし、プロジェクトにさらにコントロールを追加する場合は、スレッド サポートを行う必要があります。

コンポーネント名

作成している ActiveX コントロールの祖先として使用する VCL コンポーネントをドロップダウン リストから選択します。 アクティブ フォームの場合、コンポーネントは常に TActiveForm です。

インターフェイス

コントロールのデフォルト インターフェイスの名前を示します。 デフォルトでは、コントロールのインターフェイスは CoClass と同じ名前で先頭に 'I' が付きます。

バージョン情報を追加

著作権やファイルの説明など、バージョンの説明をコントロールに含めることができます。 この情報は、ブラウザで表示することができます。 Visual Basic 4.0 など、ホスト クライアントによってはバージョン情報を必要とするものがあり、それがないとコントロールをホストしません。 バージョン情報は、[プロジェクト|オプション...] を選択し、バージョン情報 ページを選択することによって指定できます。


スレッド モデル

ActiveX コントロールは、次のスレッド モデルを使用できます。

モデル 説明

シングル

一度にサービスできるクライアント スレッドは 1 つだけです。 COM はすべての受信呼び出しをシリアル化します。 コードでスレッド サポートする必要はありません。

アパートメント

クライアントによってインスタンス化された各コントロールには、一度に 1 つのスレッドからアクセスします。 複数のスレッドからグローバル メモリにアクセスすることがないようにする必要がありますが、オブジェクトはそれ自身のインスタンス データ(オブジェクト プロパティおよびメンバ)には安全にアクセスできます。

フリー

各コントロール インスタンスは、複数のスレッドから同時に呼び出される場合があります。 グローバル メモリ同様、インスタンス データも保護する必要があります。

フリー/アパートメント両用

これは、[使用可能]スレッド モデルと同じですが、クライアントが供給するコールバックはすべて、同じスレッドでの実行が保証されている点が異なります。 つまり、パラメータとしてコールバック関数に提供した値を保護する必要はありません。

ニュートラル

複数のクライアントから、コントロールを異なるスレッドで、同時に呼び出すことができますが、COM は 2 つの呼び出しが衝突しないことを保証します。 グローバル データや複数のメソッドがアクセスするインスタンス データにかかわるスレッドの衝突から保護する必要があります。 このモデルはユーザー インターフェイスを持つオブジェクトでは使用しないでください。 このモデルは COM+ でのみ使用できます。 COM の場合は、[アパートメント スレッド モデル]にマップされます。



関連項目