[リストへもどる]
一括表示

投稿時間:2003/10/23(Thu) 16:25
投稿者名:まさ
Eメール:
URL :
タイトル:
ActivX作成について
始めまして、非常にこまったことがあるので質問させてください。
(開発環境) VB6.0
(OS)      Win2000

ActiveX作成で、ユーザーコントロールモジュールの中で、
UserControlのプロパティを参照しました。それはもちろんOKでした。
そのあとクラスを生成し、クラスのなかで、UserControlのプロパティを参照しようと
しました。そのまま参照しようとするとオブジェクトが無い。と、もちろん言われるので、
オブジェクト型のプロパティをクラスに実装させ、
クラス内のメソッドの中で、UserControlのプロパティを参照しようとしたところで
エラーがでました。
この現象はどういうことでしょうか?
どうかご教授おねがいします。
サンプルソースを書きます。
<ユーザーコントロールモジュール>
Public Cls As クラス
Public ParentForm As Form
Private Sub UserControl_Initialize()
    Set Cls = New クラス
    UserControl.ScaleMode = 3          '// スケールをピクセルに変更
    UserControl.AutoRedraw = True      '// オートリドロー  ユーザーコントロールモジュールで、
                                       '// UserControlのプロパティは参照できる。
End Sub
Private Sub UserControl_Resize()
    Set ParentForm = UserControl.Parent    '// 自作のコントロールが張り付いてる親フォーム取得
    Cls.TrgetObj = ParentForm.Controls(0)  '// クラスに UserControl をセット
    Cls.メソッド                           '// メソッド呼び出し
End Sub
<クラス>
Private mTrgetObj As Object
'// ターゲットオブジェの取得
Property Let TrgetObj(ByRef Obj As Object)
     Set mTrgetObj = Obj
End Property
Public Sub メソッド()
    mTrgetObj.DrawMode = 7  '// ここで実行時エラー438  オブジェクトはこのプロパティ
                            '// またはメソッドをサポートしていません。 とエラーがでます。
End Sub

投稿時間:2003/10/23(Thu) 22:45
投稿者名:よねKEN
Eメール:
URL :
タイトル:
Re: ActivX作成について
>     mTrgetObj.DrawMode = 7  '// ここで実行時エラー438  オブジェクトはこのプロパティ
>                             '// またはメソッドをサポートしていません。 とエラーがでます。

作ったユーザコントロールにDrawModeプロパティがないから、
そのまんまプロパティがないと怒られているだけだと思いますけど・・・

投稿時間:2003/10/23(Thu) 23:54
投稿者名:まさ
Eメール:
URL :
タイトル:
Re^2: ActivX作成について
> >     mTrgetObj.DrawMode = 7  '// ここで実行時エラー438  オブジェクトはこのプロパティ
> >                             '// またはメソッドをサポートしていません。 とエラーがでます。
>
> 作ったユーザコントロールにDrawModeプロパティがないから、
> そのまんまプロパティがないと怒られているだけだと思いますけど・・・

様はマッピングしろということで、いいのでしょうか?
ユーザーコントロールでは参照できるのに、クラス内から参照はできないみたいですね。
すみません基本的なことを聞いて。ありがとうございました。