プロが教える店舗&オフィスのセキュリティ対策術

VB6+SP5にて開発しております。
「クラス名.構造体名.変数名 = 値」といった感じで構造体をプロパティとして使用できればと考えているのですが、単純に構造体を定義しただけでは駄目なようです。実現は無理なのでしょうか?よろしくお願いします。

A 回答 (2件)

クラスの中に別のクラスなら入れられます。



''''''''''''''''''''
'Complexクラスモジュール

Public X As Double, Y As Double

Public Property Get Length() As Double
Length = (X ^ 2 + Y ^ 2) ^ 0.5
End Property

Public Property Get Arg() As Double
'角度
End Property

''''''''''''''''''''
'CompRectクラスモジュール

Public Z1 As New Complex
Public Z2 As New Complex

Public Property Get Size() As Double
Size = Abs((Z1.X - Z2.X) * (Z1.Y - Z2.Y))
End Property

''''''''''''''''''''
'標準モジュール

Public Rectangle As New CompRect

Sub Main()

Rectangle.Z1.X = 2
Rectangle.Z1.Y = 5
Rectangle.Z2.X = 5
Rectangle.Z2.Y = 8

Debug.Print Rectangle.Size

End Sub

単純に複素数平面上の長方形の大きさを出してくれるクラスです。
ちなみに、

クラス名.構造体名.変数名

は絶対ムリです。

クラス変数名.クラス変数名.変数名

ならOKです。
クラスモジュールはそれ自体が変数でないことを忘れないでください。
    • good
    • 3

クラスのPublicなプロパティにユーザ定義体(構造体)は使用出来ません。



これは、VBのクラスがオートメーション型と呼ばれているVariantに格納できる形式以外、メソッドやプロパティを公開できないためです。
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A