投稿日 | : 2006/12/05(Tue) 19:11 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re: 既存のコントロールにメソッドを追加 |
> 独自のメソッドを追加する方法がわからずに困っています。
UserControl にラッピングするという方法がありますが、あまりお奨めはできません。
VB6 には、実装継承がサポートされていないからです。(インターフェイス継承は可能)
なので、コントロール自体にメソッドを直接追加するのではなく、
Public Sub Anything(ByVal x As 何とかコントロール)
のように、そのコントロールのインスタンスを受け取って処理するようなクラス
(あるいはモジュール)を作るというのは如何でしょう?
もし、Decoratorパターン(?) っぽい作りにするなら、こんな手法があります。
http://web.archive.org/web/20041012230232/www.gj.il24.net/~nakasima/vb/tech/excontrol/index.htm
> クラスファイル(Class1)を追加して
> Implements vaSpread と記述してみたのですが、
Implements は、インターフェイスのみを継承しますので、それぞれのメソッドの処理実装は、
元のオブジェクトに委譲するか、あるいは自力実装する必要があります。
> 「インターフェイスまたはクラスをインプリメントする場合、
> 関連するすべてのパブリック (Public) プロシージャを含める必要があります。」
コードウィンドウ右上のコンボボックスを選択すると、指定したインターフェイスが持つ
Public メンバの定義が、コードウィンドウに展開されます。それを繰り返して、
そのインターフェイスが持つすべての Public メンバを展開してください。
あとは、展開された各プロシージャに、それぞれのメソッドに応じた実装を書くことになる、と。