■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#5687-0RE#5582:クラスのつかいかた2ササ1999-12-15(水) 12:42
     #5706-0RE#5687:クラスのつかいかた2ASA1999-12-15(水) 16:01
     #5707-0RE#5706:クラスのつかいかた2ASA1999-12-15(水) 16:15
     #5718-0RE#5707:クラスのつかいかた2魔界の仮面弁士1999-12-15(水) 19:34
     #5746-0クラスのつかいかた3ササ1999-12-16(木) 12:04
     #5749-0RE#5746:クラスのつかいかた3魔界の仮面弁士1999-12-16(木) 13:03
#5687-0
RE#5582:クラスのつかいかた2
魔界の仮面弁護士さんコメントありがとうございました。
次のような感じで書いてみたのですがどうもうまくいきません。

クラス  cGraph  のコードーーーーーーーーー
Private Pict As Object

Public Property Let PictureName(ByVal PictName As Object)
 Pict = PictName
End Property

Public Function DrawSHEET() As Boolean
 Pict.Line (-1000, -1000)-(1000, 1000), QBColor(12), B
 DrawSHEET = True
End Function

Form1のFormLoadのコードーーーーーーーーーー
(Picture1はForm1上に有ります)

Dim cPicture As cGraph
Set cPicture = New cGraph

cPicture.PictureName = Picture1

cPicture.DrawSHEET

やりたいことは、クラスの内部のPictという変数にPicture1
を代入して、Form1からcGraphのメソッドDrawSHEETを使い
Picture1にグラフを書くということです。
cPicture.PictureName = Picture1 のところでエラーが出てしまいます。
また素朴な疑問として
1)Dim cPicture As cGraph
   Set cPicture = New cGraph
   は Dim cPicture As New cGraph
   ではだめなのでしょうか。
2)cGraph内部のPictureBoxのオブジェクト名を
   格納する変数の型はオブジェクト型でいいのでしょうか。
   「Form1.」とすると自動的にドロップダウンする項目の仲に
   「PictureBox」という項目がありますがこれは変数ではないのでしょうか。
   (アイコンはクラスと同じですが・・・)
3)DrawSHEET()はとりあえずBoolean型にしましたが 
   返す値が別に無いときにはこれでいいのでしょうか?
クラスの勉強中です。ご教授お願いします。
#5706-0
RE#5687:クラスのつかいかた2
> (略)
> やりたいことは、クラスの内部のPictという変数にPicture1
> を代入して、Form1からcGraphのメソッドDrawSHEETを使い
> Picture1にグラフを書くということです。
> cPicture.PictureName = Picture1 のところでエラーが出てしまいます。

オブジェクトへの参照を設定するのは、Property Let ではなく、Property Setです。

> また素朴な疑問として
> 1)Dim cPicture As cGraph
>    Set cPicture = New cGraph
>    は Dim cPicture As New cGraph
>    ではだめなのでしょうか。

後者は、自動的に最初の参照時にオブジェクトのインスタンスが作成されます。

> 2)cGraph内部のPictureBoxのオブジェクト名を
>    格納する変数の型はオブジェクト型でいいのでしょうか。
>    「Form1.」とすると自動的にドロップダウンする項目の仲に
>    「PictureBox」という項目がありますがこれは変数ではないのでしょうか。
>    (アイコンはクラスと同じですが・・・)

.... As PictureBox とした方がよいと思います。

> 3)DrawSHEET()はとりあえずBoolean型にしましたが 
>    返す値が別に無いときにはこれでいいのでしょうか?
> クラスの勉強中です。ご教授お願いします。

何も書かなければ、Variant型です。とりあえず、Longにでもして1,0を返すとか、
BooleanでTrue,Falseを返すのでいいと思います。
#5707-0
RE#5706:クラスのつかいかた2
> > 3)DrawSHEET()はとりあえずBoolean型にしましたが 
> >    返す値が別に無いときにはこれでいいのでしょうか?
> > クラスの勉強中です。ご教授お願いします。
> 
> 何も書かなければ、Variant型です。とりあえず、Longにでもして1,0を返すとか、
> BooleanでTrue,Falseを返すのでいいと思います。

書き忘れましたが、何も返さないというのでもいいです。
#5718-0
RE#5707:クラスのつかいかた2
>>> 3)DrawSHEET()はとりあえずBoolean型にしましたが 
>>>    返す値が別に無いときにはこれでいいのでしょうか?
>> 何も書かなければ、Variant型です。とりあえず、Longにでもして1,0を返すとか、
>> BooleanでTrue,Falseを返すのでいいと思います。
> 書き忘れましたが、何も返さないというのでもいいです。
そのメソッドを、Subプロシージャとして作成…
#5746-0
クラスのつかいかた3
ASAさん、魔界の仮面弁士さんありがとうございました。
無事動作させられました。
ところでProperty Let A(A,B,C)のようにプロパティとして
複数の引数を指定したとき、どのようにすればこの
プロパティを使えるのでしょうか。
cGraph.A(1,2,3)
だとプロパティの使い方が不正ですと出てしまいます.
#5749-0
RE#5746:クラスのつかいかた3
> ところでProperty Let A(A,B,C)のようにプロパティとして
> 複数の引数を指定したとき、どのようにすればこの
> プロパティを使えるのでしょうか。
Letだけではなく、Get/Setも作れば、見えてくるかと思います。(^^;)
ヘルプとにらめっこして、もう少し考えてみましょう。
# ヒント:最後の引数がプロパティへの代入値

> cGraph.A(1,2,3)
> だとプロパティの使い方が不正ですと出てしまいます.
プロパティとメソッドの違いについて、理解されていますか?
このページと関連する記事:
#7226-0関数の戻り値として、配列を指定したい2000-04-07(金) 18:01
#18979-0Property Let等の使い方2001-02-21(水) 08:06
#40377-0画像データを格納するための変数型宣言2001-03-16(金) 09:46
#20766-0Propertyについて教えてください2002-05-11(土) 17:47
#28081-0PropertyLet,Getについて2000-08-17(木) 01:48
#218-3COMを利用してIEを制御2003-05-05(月) 11:05
#2227-1Property プロシージャについて2004-05-20(木) 09:23
#19852-0Property Get (Let) と Functionステートメントの違い2001-03-27(火) 17:22
#16202-0ファンクションで複数の戻り値を返す方法は?2001-05-21(月) 16:25
#1248-0UserControlのプロパティにて2004-02-24(火) 09:48
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)