>Good evening all
>
>How do I get a global object reference to a form called by a prg file?
>
>I have a modless form (form1) that is called from a prg via DO FORM form1. Another form (form2)is modal and is called by a menu snipet. Form2 runs some code to change a few properties in Form1. Sounds simple enough, and in fact when running this in my development environment it works fine.
>
>BUT, when running my app, The below code fails.
>
>**form2.mycusmeth()
>form1.backcolor = RGB(255,255,255)
>* fails, error "form1 is not an object"
>
>
>I know that the error is caused by Form1 going out of scope, because it was called from a prg. To remedy, I ran the following in the prg file calling form1.
>
>** prg calling form1
>PUBLIC form1 AS Object
>form1 = .f.
>DO FORM "form1.scx" NAME form1
>
>
>Running the form2.mycusmeth() code still throws the same error, "form1 is not an object".
>
>So, Fox gurus, lend me your genius. How to I obtain and retain an object reference to form1?
>
>Thanks in advance
> -DEL
Donald
Not sure but a suggestion:
Why after declaring Form1 as an object do you then initialise it to .F., thus (I presume) dynamically changing it to a logical field?
Why initialise it at all, esp. as you then immediately give it a value with the "Do form "?
Have you tried appending the "linked" clause at the end, scoping the form object to the var? Although Help refers to this as a means of releasing the form when the var goes out of scope, maybe the converse works and it's an aid to maintaining the scope.
HTH
Terry
- Whoever said that women are the weaker sex never tried to wrest the bedclothes off one in the middle of the night
- Worry is the interest you pay, in advance, for a loan that you may never need to take out.