Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Array in a Class
#1
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
Quote:Robin:
Why aren't maps and shit loaded up in a dynamic array?
Jacob:
the 4 people that know how are lazy
Robin:
Who are those 4 people?
Jacob:
um
you, me, and 2 others?
Reply
#2
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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)