I am trying to build a form in a class. Everything is working ok, but now
I want to return a value from the form.

How do I get the return value passed back to the calling form ?

Here is my code:

oForm = createobject("testform")
oForm.show(1)
lcReturnMsg = oForm.cReturnMsg

The problem is the 3rd line errors out with oForm not valid because the form
has already released

So what is the trick to return a value from a form in a class ?

Typically I do something like this (untested and no error-trapping, but enough to give the gist):

DEFINE CLASS Form1 AS Form
     ModalResult = ""

     PROCEDURE LaunchForm2
          oForm = CREATEOBJECT("Form2",THISFORM)

          oForm.Show(1)

          * Do something with THISFORM.ModalResult here....
     ENDPROC
ENDDEFINE

DEFINE CLASS Form2 AS Form
     ReturnValue = ""
     Caller = .NULL.

     PROCEDURE Init
          LPARAMETERS oCaller

          THIS.Caller = oCaller
     ENDPROC

     PROCEDURE DoSomethingUseful
           THIS.ReturnValue = "Foo"
     ENDPROC

     PROCEDURE UNLOAD
           oCaller.ModalResult = THIS.ReturnValue
     ENDPROC
ENDDEFINE

Ken Dibble
www.stic-cil.org


_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://mail.leafe.com/mailman/listinfo/profox
OT-free version of this list: http://mail.leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/[email protected]
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to