Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Referencing an object using a variable for the object na
Message
From
15/08/2001 16:18:56
Jason Mesches
Ocean Systems Engineering Corporation
Carlsbad, California, United States
 
 
To
15/08/2001 14:48:00
General information
Forum:
Visual FoxPro
Category:
Classes - VCX
Miscellaneous
Thread ID:
00544237
Message ID:
00544319
Views:
20
>Hello,
>
>I'm having a problem trying to figure out how to reference objects and object arrays when you are using variables instead of actual names. For example, consider the following procedure. In this situation, I need to (1) check to see if an object exists, and then (2) generate this object if it doesn't exist, and (3) run a procedure using an array that is a property of the newly created object. I'm not sure how to reference the array using a variable, or how to pass the array as reference, since @ doesn't work here. I am only getting the first element of the array.
>
>PROC MYPROC
>
>lParameter lcObjectClass
>Local loObject, loArray
>loOption = "o" + lcObjectClass
>
>
>* Check to see if object exists
>
>IF (TYPE("THIS." + loObject + ".array") = "U")
> THIS.AddObject(loObject, lcObjectClass)
>ENDIF
>
>* Get array reference (is there a better way to do this? This works but seems a little clumsy.)
>
>loArray = "Session." + loObject + ".array"
>loArray = Evaluate(@loArray)
>
>
>This.DoSomething(@loArray) && this does not work, array does not pass by reference
>
>ENDPROC
>
>Thanks for any tips,
>
>Linda Swift

Try defining loArray as loArray[1] in your LOCAL statement. That way it's set up as an array to begin with. Then, your ACOPY should work directly from your object:

lnElementsCopied = ACOPY(Session.loObject.Array, loArray)

At this point, you should be able to DoSomething(@loArray)

Hope this helps,
---J
Previous
Reply
Map
View

Click here to load this message in the networking platform