Mirage Source
Array in a Class - Printable Version

+- Mirage Source (https://mirage-engine.uk/forums)
+-- Forum: Mirage Source (Nostalgia) (https://mirage-engine.uk/forums/forumdisplay.php?fid=61)
+--- Forum: Archive (2006-2011) (https://mirage-engine.uk/forums/forumdisplay.php?fid=18)
+---- Forum: General (https://mirage-engine.uk/forums/forumdisplay.php?fid=17)
+---- Thread: Array in a Class (/showthread.php?tid=2584)



Array in a Class - Robin - 01-03-2009

I need to store a byte array within my 'clsAccount' class file.

I have it like this:

Code:
Private account_Buffer() As Byte

But I keep pulling up an error whenever I try and call Player(index).Buffer

Here's my get/let:

Code:
Public Property Get Buffer() As Byte
    Buffer = account_Buffer()
End Property

Public Property Let Buffer(ByVal vData As Byte)
    account_Buffer() = vData
End Property

I also tried:

[code]
Public Property Get Buffer(ByVal iI As Long) As Byte
If iI >= 0 And iI = 0 And iI


Re: Array in a Class - Dragoons Master - 01-03-2009

I maneged to make a working version, but I don't know exactly how to get the value with direct access to the variable. Well, try for your self:

Code:
Option Explicit
Private account_Buffer() As Byte

Private Sub Class_Initialize()
    ReDim account_Buffer(1 To 10) As Byte
    
    Dim i As Long
    For i = 1 To 10
        account_Buffer(i) = i
    Next i
End Sub

Public Property Get Buffer() As Byte()
    Buffer = account_Buffer
End Property

Public Property Get Item(ByVal index As Integer) As Byte
    Buffer = account_Buffer(index)
End Property

Public Property Let Item(ByVal index As Integer, ByVal value As Byte)
    account_Buffer(index) = value
End Property

Public Property Let Buffer(ByRef vData() As Byte)
    account_Buffer = vData
End Property
And the Form1 example:
Code:
Private Sub Form_Load()
    Dim vari As Class1
    Set vari = New Class1
    
    Dim haha() As Byte
    
    vari.Item(1) = 2
    
    haha = vari.Buffer
    
    Dim i As Long
    
    For i = 1 To 10
        MsgBox haha(i)
    Next i
End Sub

EDIT:
Now it works, but since you can't overload in vb6, you cant use the same name for both functions.