VB6 Collection Problem

Started by
7 comments, last by md_lasalle 20 years ago
Hi, i was working around with collection and had a hard time findin what is my problem I have a Class clsPiece, in this class i have a Collection of clsSegments When I do : Dim Piece As New clsPiece Dim myNewSegment as new clsSegment Piece.Segments.Add myNewSegment <-- here''s the problem it doesnt want only the new Segment, it wants parameters for evrything that a segment is... i would like to be able to pass just an object of type clsSegment and not the parameters of a new clsSegment the Segment structure is shown below Private mcolVectors As Vectors Private mcolLitVertexes As LitVertexes Private mcolOriginVectors As OriginVectors Private mcolCells As Cells So a segment is an object that has 4 collections in it... is there a way to just initialise all the thing to 0 like vb does so well... i saw in the msdn help exemples something like that: Piece.Segments.Add Item:=myNewSegment first time I see the ":=" operator in VB6 and i tried their exemple and still doesnt work
Advertisement
o..k

Next time, it would be more helpful if you simply copy and paste code rather than trying to describe it.

Dim Piece As New clsPiece
Dim myNewSegment as new clsSegment

Maybe:

Dim Piece As New clsPiece
Dim myNewSegment as new Collection
myNewSegment.add Piece

??

[edited by - Manip on March 25, 2004 2:15:51 PM]
i would like to do myPiece.Segments.add
but when i Dim myPiece As new clsPiece
do I have to initialize the Segments collection in some sort of way??


[edited by - md_lasalle on March 25, 2004 5:57:01 PM]
You need to initialize Segments using the New keyword:
Dim Segments as New Collection
Damm my problem waas that i used index 0 instead of 1 for the first element, boy i feel like a noob

ok, maybe another noob question, what''s the best way to save an object in a binary file...I tried:

Open App.Path & myRec!AssociatedFile For Binary As #1
Put #1, 1, CurrentPiece
Close 1

VB gives me an error that says Object variable cannot be PUT in a file, i looked at the help file and they said you must save each property of the object manualy... this would be possible for me but a painful job... anyone has a suggestion?
Well, you can't dump a function or sub can you?! If you want to be able to write it to a file, use user-defined types aka a struct.

User-Defined type ~ Rap Class ~ Dump class property aka user defined type

Type Thing
value1 string
value2 string
value3 int
end type

ClassX:
Public Thing as MyType

Public Property Get store() As Variant
store = thing.valuex
End Property

Public Property Let store(ByVal vNewValue As Variant)
thing.valuex = vnewvalue
End Property

End ClassX

Open App.Path & myRec!AssociatedFile For Binary As #1
Put #1, , CurrentPiece.Thing
Close 1


[edited by - Manip on March 25, 2004 7:32:52 PM]
I did some user defined types first, and it was workin well with the PUT but because i have dynamic arrays i''m stuck with using classes
quote:Original post by md_lasalle
I did some user defined types first, and it was workin well with the PUT but because i have dynamic arrays i''m stuck with using classes


Your what? Why? wa?
Sorry, i don''t speak a lot english

nevermind, i wont copy paste some source code cause theres too much, i have like 15 classes in my game so... but anyway i''ll work it out, thanks anyway

This topic is closed to new replies.

Advertisement