Ok, thanks. At least I can stop trying now...

So I guess that Type is not comparable to Struct in C then. In C, even a struct can be inside another struct, I think. Well, it was a long time I did anything useful in C anyway, so maybe my memory needs to be refreshed...


Johnny

Andy Pitonyak <[EMAIL PROTECTED]> skrev den Sat, 21 May 2005 22:51:56 -0400 (EDT):

I would have to check my book and I do not have it with me, but, I think
that you can not use an array in a user defined type unless you store it
in a variant data type...

Hi again!


Let's say that I modify your example as follows:

Type MyType
        aName as String
        aAge as Integer
        Things() as String
End Type


Sub Main
        Dim mt(20) As New MyType
        mt(13).aName = "Tom"
        mt(13).aAge = 42

        Msgbox mt.aName & ", " & mt.aAge
End Sub

I guess I could REDIM the whole mt() by just adding something like:
REDIM mt(40)

But what about, for example, mt(17).Things?
REDIM mt(17).Things(200)
And maybe Tom has only 78 Things, like
REDIM mt(13).Things(78)

Is this allowed and will it work? I only want to REDIM Things for ONE of
  the mt elements.

Does this make any sense?


Best regards
Johnny




Andreas Bregas <[EMAIL PROTECTED]> skrev den Fri, 20 May 2005
10:34:46 +0200:

Hi Johnny,

first, I think [email protected] would be more appropriate
for questions like yours.

But there is something like "struct" in Basic, the Type command. I
think it's available since OOo 1.1.4. Example:


REM  *****  BASIC  *****
Type MyType
        aName as String
        aAge as Integer
End Type

Sub Main
        Dim mt As New MyType
        mt.aName = "Tom"
        mt.aAge = 42

        Msgbox mt.aName & ", " & mt.aAge
End Sub

I hope that's what you thought of.

Regards

Andreas



  Andersson schrieb:
I studied the built in help and it really didn't help me at all. I
also  looked for it in the free macro manual, but I didn't find
anything so far.
 I would like to be able to declare something that works like struct

or  class in c++, which I would believe would be an object in
StarBasic. Is  this possible and in that case, how? A simple example
 perharps?
 If this is not possible, I guess that some kind of array would do.
Will this example bekow work, and is there an easier way to do this
 (except declaring as Variant and then later let the different
element   be  whatever they are assigned to)?
Dim MyArray(1 To 1,9) As String, MyArray(2 To 2,9) As Integer,
MyArray(3  To 3,9) As Date
 What I want to do is the following, if not obvious:
MyArray(1,0) to MyArray(1,9) are string variables.
MyArray(2,0) to MyArray(2,9) are integer variables.
MyArray(3,0) to MyArray(3,9) are date variables.
 This way I could fake my own kind of c++ structures by declaring
some
constants like the following example:
 Const PlayerName=1
Const PlayerPoints=2
Const PlayerDate=3
 Dim Player As Integer
Dim Players(1 To 3, 9) As Variant
 Players=SetEverything(Players) ' Supposed to return relevant data...
For Player=0 To 9
    Print Players(PlayerName,Player)+",
"+Players(PlayerPoints,Player)+" p,   "+Players(PlayerDate,Player)
Next Player
  Am I totally out of sense here?


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

--------------------------------------------------------------------- To
unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






--
Johnny Andersson
Sörgårdsvägen 4, 5 tr
445 37  BOHUS

031-98 26 74
073-99 0 77 88

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to