>Hi George
>
>Can you give an example of how the access and assign methods might help me revert a string parameter that was changed to an array back to a string?
>
>>>Hi All
>>>
>>>I need to pass a parameter to a method by reference. The called method may alter the parameter, so I want to push the parameter to a property. The parameter may be a string or an array to begin with. I don't believe the save and restore variables to memo fields / .mem files route would be feasible.
>>>
>>>The problem is, if an initial parameter is passed as a string and pushed to a property, and the called program changes the passed parameter to an array, it doesn't seem possible to pop the parameters so as to cause the array to become a string again.
>>>
>>>To demonstrate...
>>>
>>>Junk.prg
>>>lcString = "Testing"
>>>?junk1(@lcString)
>>>disp memo
>>>*Notice that lcString is now an array.
>>>return
>>>
>>>junk1.prg
>>>lParameters tuParameter
>>>*Push the incoming parameters
>>>local luParameter
>>>luParameter = tuParameter
>>>*Convert the string to an array to do some processing...
>>>local array laArray[1,1]
>>>laArray[1,1]="Something else"
>>>dimension tuParameter[1,1]
>>>=acopy(laArray,tuParameter)
>>>*Do the processing
>>>...
>>>*Pop the parameter (so that we get back the original string)
>>>tuParameter = luParameter
>>>return
>>>
>>>I've tried releasing tuParameter before storing luParameter to it. Any ideas?
>>
>>In addition to what Sergey suggested, you might consider the _access and _assign events.
Sorry, didn't look at what you were doing closely enough. Why not just pass by value?
George
Ubi caritas et amor, deus ibi est