まず、私はVB6を使用しているので、VB6に適用される手法にあなたの親切な提案を限定してください。
上の図に示すように、相互に関連する一連のコントロールがあります。これには、いくつかのツリービュー、分割バー、リストビュー、サブフォーム(ユーザーコントロール)などが含まれます。
左側のツリービューノードをクリックまたは変更すると、右側のコントロールはそれに応じて表示を変更し、その逆も同様です。
舞台裏のデータはAccessデータベースに保持されています。
このデータ管理と表示のセットは、いくつかの異なるアプリケーションで使用されます。そこで、ロジックを実装し、これらのクラスモジュールをアプリケーションに何度も含めるために、いくつかのクラスを作成しました。
そのため、実際には「コピーアンドペースト」モードでクラスを再利用しています。動作しますが、問題があります。クラスを変更した場合、いくつかのアプリケーションで変更する必要があります。
最近、私はそれらをいわゆるActiveXコンポーネントにすることを考えています。しかし、アーキテクチャ全体を再利用するためにどの種類のActiveXコンポーネントを開発する必要があるのかわかりません。
一言で言えば、単に「コピーアンドペースト」するよりも、どうすればもっと優雅に再利用できるのか知りたいです。以下は、新しい「優雅な再利用」のいくつかのアイデアまたは期待ですが、それらに限定されません。
(1)デザイン時にいくつかのプロパティを設定できるように、プロパティページを持つActiveXコントロールのように見えることを願っています。
(2)アプリケーションが異なれば、右側のサブフォームは異なる情報を表示し、異なるコントロールを持ち、追加のコーディングと設計が必要になる場合があります。
(3)また、さまざまなアプリケーションのツリービューとリストビューの新しい動作をコーディングする必要があるかもしれません。この要件により、フォーム全体のユーザーコントロール全体が適切ではなくなります。MSDNは、「ActiveXコントロールへの参照は、クライアントアプリケーションに返さないでください」と述べているためです。