>Hi all
>
>I've got a situation. Inherited code, BTW. A formset - which seems really superfluous in this case, has a form. The form dimensions an array in the load. That's a private array, almost public.
>
>DIMENSION SomeArray[10]
>
>A button on the form calls a PRG which contains the line:
>
>EXTERNAL ARRAY SomeArray
>
>The array is not passed to the PRG as a parameter.
>
>The PRG calls a UDF, passing the array like this.
>
>DO UDF WITH SomeArray
>
>The programmer attempted to receive the array in a UDF.
>PARAMETERS SomeArray
>
try
PARAMETERS SomeArrayNewName
or
LPARAMETER SomeArrayNewName
>Technically, the array wasn't passed, just the first element's value.
Not true. A reference is passed.
>
>Subsequent references prove that the array is virtually public. The name is consistent throughout the set of code.
>
>x=SomeArray[5]
>
>DISPLAY MEMO shows SomeArray as Hidden in the UDF,
>
This because a variable passed by reference it is hidden, and with tha same name VFP can fail the display memo ( not checked ).
>It's confusing but it works. I could dispense with passing and receiving the array, which would make it clearer, or re-engineer it to make it properly encapsulated, which means changing the UDFs.
>
>Or just document the existing situation.
>
>What would you do?
Forgot DO, and uses func(@variable)