How do you pass the name of a type member to a function?
How do you pass the name of a type member to a function?
(OP)
I suspect this is a real tough one - it's driving me mad. I'm trying to write a function which receives a user-defined type member name (not its value). How do you pass the name of a type member to a function? Obviously you can pass it as a string but then how do you use it?
This should make things clear:
Private Type MyType
x1 as integer
x2 as single
End type
Dim MyData as MyType
.
.
MyFunction(MyData.x2) ' this passes the value (which is not what I want)
'MyFunction must be able accept the name of the type member:
MyFunction(whatever) ' pass the name, ie x2 or x1
Public Function MyFunction(whatever)
Dim YourData(10) as MyType
' Of course the next line doesn't work
' I want to set the value of YourData(5).x2 = 1.23
YourData(5).whatever = 1.23
.
.
End Function
This should make things clear:
Private Type MyType
x1 as integer
x2 as single
End type
Dim MyData as MyType
.
.
MyFunction(MyData.x2) ' this passes the value (which is not what I want)
'MyFunction must be able accept the name of the type member:
MyFunction(whatever) ' pass the name, ie x2 or x1
Public Function MyFunction(whatever)
Dim YourData(10) as MyType
' Of course the next line doesn't work
' I want to set the value of YourData(5).x2 = 1.23
YourData(5).whatever = 1.23
.
.
End Function
RE: How do you pass the name of a type member to a function?
DimensionalSolutions@Core.com
While I welcome e-mail messages, please post all thread activity in these forums for the benefit of all members.
RE: How do you pass the name of a type member to a function?
I want the item to the right of the dot, which I have called "whatever" to be determined by a variable that is passed to the function. I don't want to change the value of the user-defined type that called the function.
YourData(5).whatever = 1.23
The above is of course not possible. I'm just trying to show what I need to achieve.
The function should actually do this :
YourData(5).x1 = 1.23
or
YourData(5).x2 = 1.23
etc, whatever is passed!
I thought this would be a tricky one to explain.