+ Reply to Thread
Results 1 to 3 of 3

subs or functions with user defined types

  1. #1
    Ray Pixley
    Guest

    subs or functions with user defined types

    I've been trying to call a subroutine where the parameters include a user
    defined type without success.
    Pseudo-code of what I'm trying to do is as follows:

    type typArr
    key as long: dat as string
    end type
    dim arr() as typArr
    Sub main()
    dim point as long
    point=add (this, arr(), arr().key)
    arr(point).dat= ..... (to finish adding other data items)
    end sub
    function add( This as variant, ToThis() as ???, Key as ???) as long
    ( find where to insert and return location, includes shifting data in
    ToThis() )
    redim preserve tothis(1 to newcount) (if need more arr())
    end function

    How do I do this? (I eventually want to make the add() function as part of a
    class)





  2. #2
    Tim Barlow
    Guest

    Re: subs or functions with user defined types

    I think this is causing the problem:
    arr().key

    You can pass the entire array across, but you can't have 'arr().key'

    Try something like:

    point = add("something", 123, arr())

    with

    Function add(this As Variant, aKey As Long, toThis() As typArr) As Long


    HTH

    Tim

    "Ray Pixley" <[email protected]> wrote in message
    news:oG1Mf.772$FE2.347@trnddc01...
    > I've been trying to call a subroutine where the parameters include a user
    > defined type without success.
    > Pseudo-code of what I'm trying to do is as follows:
    >
    > type typArr
    > key as long: dat as string
    > end type
    > dim arr() as typArr
    > Sub main()
    > dim point as long
    > point=add (this, arr(), arr().key)
    > arr(point).dat= ..... (to finish adding other data items)
    > end sub
    > function add( This as variant, ToThis() as ???, Key as ???) as long
    > ( find where to insert and return location, includes shifting data in
    > ToThis() )
    > redim preserve tothis(1 to newcount) (if need more arr())
    > end function
    >
    > How do I do this? (I eventually want to make the add() function as part of

    a
    > class)
    >
    >
    >
    >




  3. #3
    Ray Pixley
    Guest

    Re: subs or functions with user defined types

    Close and thoughtful, but I may have oversimplified what I want to do. I
    should have used "Insert" instead of "Add" as a subroutine name (symantics).
    But the other problem is I'd like to use the same subroutine with other
    typArrs that have a different data structure, but have at least a "key"
    member, so as to reduce the amount of nearly duplicate code that I'm dealing
    with. Also, the key may not always be a long, it may be a string, and I'd
    like the option of mindlessly using either type just in that subroutine call
    without having to disable Option Explicit.

    "Tim Barlow" <[email protected]> wrote in message
    news:[email protected]...
    >I think this is causing the problem:
    > arr().key
    >
    > You can pass the entire array across, but you can't have 'arr().key' Try
    > something like:
    >
    > point = add("something", 123, arr()) with
    > Function add(this As Variant, aKey As Long, toThis() As typArr) As Long
    >
    > HTH
    >
    > Tim
    >
    > "Ray Pixley" <[email protected]> wrote in message
    > news:oG1Mf.772$FE2.347@trnddc01...
    >> I've been trying to call a subroutine where the parameters include a user
    >> defined type without success.
    >> Pseudo-code of what I'm trying to do is as follows:
    >>
    >> type typArr
    >> key as long: dat as string
    >> end type
    >> dim arr() as typArr
    >> Sub main()
    >> dim point as long
    >> point=add (this, arr(), arr().key)
    >> arr(point).dat= ..... (to finish adding other data items)
    >> end sub
    >> function add( This as variant, ToThis() as ???, Key as ???) as long
    >> ( find where to insert and return location, includes shifting data in
    >> ToThis() )
    >> redim preserve tothis(1 to newcount) (if need more arr())
    >> end function
    >>
    >> How do I do this? (I eventually want to make the add() function as part
    >> of

    > a
    >> class)
    >>
    >>
    >>
    >>

    >
    >




+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1