Thanks for your reply again! I will definitely take a look on that
presentation.

Have a great day!

Johnny Andersson

2007/1/30, Andrew Douglas Pitonyak <[EMAIL PROTECTED]>:



Johnny Andersson wrote:
>
> 2007/1/29, Andrew Douglas Pitonyak <[EMAIL PROTECTED]>:
>> What do you really want to accomplish? Do you want to copy a range of
>> data from one location to another? If so, you can use methods to
>> directly copy the data. I have used "cheat" methods such as
>>
>> oCellRange1.setData(oCellRange2.getData())
> No, a function will use the data (and other data) for calculation. The
> function will return a value that will be written to another cell. The
> function will be in a loop and use three of the values (one
> column), different every time.
Very good. I assume that you now know how to do this.
>>
>> > Another solution would perharps be to create a struct (as it's called
>> > in C),
>> > but is that possible in OpenOffice.org Basic?
>> Yes, you can create a user defined structure/type. To quote from my
>> AndrewMacro.odt document.
>>
>>
>> 1.1. User Defined Data Types
>> As of OOo 1.1.1, you can define your own data types.
>> Listing 5.51: You can define your own data types.
>> Type PersonType
>>   FirstName As String
>>   LastName As String
>> End Type
>>
>> Sub ExampleCreateNewType
>>   Dim Person As PersonType
>>   Person.FirstName = "Andrew"
>>   Person.LastName  = "Pitonyak"
>>   PrintPerson(Person)
>> End Sub
>>
>> Sub PrintPerson(x)
>>   Print "Person = " & x.FirstName & " " & x.LastName
>> End Sub
>
>
> Wow, I didn't know that! Now I have to rewrite everything macro and
> every function I've made so far..!
> They are not that many, on the other hand...
>
> In your example above, is the following possible?
>
> Sub ExampleCreateNewType
>  Dim Person(100) As PersonType
>  Person(0).FirstName = "Andrew"
>  Person(0).LastName  = "Pitonyak"
>  PrintPerson(Person(0))
> End Sub
Try it, yes, it works
> And is the following possible?
>
> Type PersonType
>  FirstName As String
>  LastName As String
>  ThingsToDo(9) As String
> End Type
No, you can NOT have an array inside of a struct. You need to fake it:

Type PersonType
  FirstName As String
  LastName As String

  REM You can NOT have an array inside a structure
  REM ThingsToDo(9) As String
  REM But you can fake it...
  ThingsToDo As Variant
End Type

Sub ExampleCreateNewType
  Dim Person As PersonType
  Dim aa(9) As String

  Person.FirstName = "Andrew"
  Person.LastName  = "Pitonyak"
  Person.ThingsToDo = aa()
  Print UBound(Person.ThingsToDo)  REM Prints 9
  Person.ThingsToDo = DimArray(9)
  Print UBound(Person.ThingsToDo)  REM Prints 9
  'PrintPerson(Person)
End Sub
>
> And finally, is the following possible?
>
> Type PersonType
>  FirstName As String
>  LastName As String
> End Type
>
> Type Human
>  Properties As PersonType
>  Friends(9) As PersonType
> End Type
You can not have an array inside of a struct. A struct in a struct,
however, is fine.
> And even more finally, is there something similar to pointers in
> OpenOffice.org Basic?
I demonstrate this in the presentation I referenced.
> I gave a presentation at the 2004 OOo Conference in Berlin concerning
>> creating advanced data types using structures. The examples are in the
>> presentation available on my web site.
>
>
> Interesting! I'd better take a look there then!
>
> Thanks for your reply!
>
> Johnny
>

--
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
My Book: http://www.hentzenwerke.com/catalog/oome.htm
Info:  http://www.pitonyak.org/oo.php
See Also: http://documentation.openoffice.org/HOW_TO/index.html

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


Reply via email to