General information
Category:
Forms & Form designer
>When we issue "do form myform to " the form called returns only one value to . Is there a way to receive more then one value.
You can create an object and pass that to the form. Here is an example from Fred Taylor in 1999
*********************
Define your object programmatically.
DEFINE CLASS parameterobject AS custom
MyNumVal = 0
MyCharVal = ''
MyArray[5] = .f.
ENDDEFINE
*
* Populate the parameter object's properties
*
oParam = CREATEOBJECT('parameterobject')
oParam.MyNumVal = 5
oParam.MyCharVal = 'Test string'
oParam.MyArray[2] = DATE()
oParam.MyArray[5] = 'samples'
*
* Now call your form with the object
*
DO MyForm WITH oParam
MyForm:Init
LPARAMETER tobject
thisform.PObject = tobject
Other methods:
thisform.Pobject.MyNumVal = 100
etc...
Your form's init event declares it is receiving the parameter and updates the values as needed. These updates can take place anywhere in your form if your form has a property to store the reference. Now, when you get back from your form, the parameter object has the updated values and you can do whatever you need to with them. Kind of like global variables, only better!
*********************************
Previous
Next
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only