自己作成クラスにて別のクラスを保持するには?

解決


あると  2004-07-29 05:00:55  No: 115145

VB6.0にてクラスモジュールを二つ定義し、
片方にもう片方のクラスを持たせるメソッドを持たせたのですが、
それを実行すると
実行時エラー438
このオブジェクトはこのメソッドまたはプロパティをサポートしていません。

となってしまいました。

  Class1, Class2

 Class1にメソッド
  Public Sub setWepon1(ByRef cls2 As Class2)
    
Set 

  End Sub
スペルミスなどではないことは確認したのですが、なぜ、このメッセージが出るのかがわかりません。

  どなたか心当たりがありましたら教えたいただけないでしょうか。


あると  2004-07-29 05:04:43  No: 115146

すみません  入力中に誤って送信してしまいました

  コードの部分は

    Class1, Class2

 Class1にメソッド
  Public Sub setWepon1(ByRef cls2 As Class2)
    
  Dim class2Data As Class2
  Set class2Data = cls2 

  End Sub

 となります。

  不手際すみません


長谷川  2004-07-29 05:38:33  No: 115147

もうすこし詳しくお願いできますでしょうか?
掲示のソースだけではエラーは起きません。

setWepon1メソッドを呼び出している部分などをお願いします。

それから、class2を保持するのが目的ならば、setWepon1メソッドの中で変数を宣言しないで、
Class1で宣言されている関数などの外側でPrivateで宣言した方がよいと思います。


あると  2004-07-29 07:54:56  No: 115148

失礼しました。
呼び出し部分ですが、普通にクラスを宣言して、メソッドを呼んでいます

Dim cls1 As Class1
Dim cls2 As Class2

Set cls1 = New Class1
Set cls2 = getClass2() 'class2を取得するメソッド

cls1.setWepon1(cls2)

  それから、ご指摘Class2宣言ですが、これは関数外で宣言しています。
紛らわしい記述ミスでした。すみません。


長谷川  2004-07-29 17:58:30  No: 115149

cls1.setWepon1(cls2)

Call cls1.setWepon1(cls2)
にしてみるとどうでしょうか?


ガッ  2004-07-30 02:47:13  No: 115150

きっと変数か、まぁ名前のスコープの問題だと思う。
が、スコープが分からない。
短いソースでまとめ上げてもらえば可。


あると  2004-08-03 01:18:44  No: 115151

Call  をつけてみたら無事に認識されました。

だいぶ返信が遅れていまい申し訳ありません
ご助言くださった方々、どうもありがとうございました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加