>myform.method() > LOCAL lo, lc, loParent > lo = 'some text' && locals window shows lo = 'some text' > lc = WPARENT( THIS.NAME ) > FOR EACH lo IN _VFP.FORMS > IF UPPER( lo.NAME ) == UPPER( lc ) > loParent = lo > EXIT && locals window shows lo = object > ENDIF > ENDFOR > IF TYPE( 'loParent.NAME' ) = 'C' ; && locals window shows lo = .F. !!!!!!!!!!!! > AND loParent.WINDOWSTATE = 1 > loParent.WINDOWSTATE = 0 > loParent.REFRESH() > ENDIF >>Obviously VFP is working with the local variable that I set to 'some text', it was changed from character to .F.
>LOCAL lc, la( 5 ) >la( 1 ) = 'A' >la( 2 ) = 'B' >la( 3 ) = 'C' >la( 4 ) = 'D' >la( 5 ) = 'E' >FOR EACH lc IN la > IF lc = la( 3 ) > EXIT > endif >ENDFOR >? lc && prints 'C' not .F. and locals window shows lc = 'C' >>So I guess a for each loop only confiscates variables and sets them to false if I'm cycling through objects. Cycling through characters leaves it just the way I would expect.
>>>>>myForm.method() >>>>> LOCAL lo, lc >>>>> lc = WPARENT( THIS.NAME ) >>>>> FOR EACH lo IN _VFP.FORMS >>>>> IF lo.NAME == lc >>>>> EXIT && Locals window shows lo as object here >>>>> ENDIF >>>>> ENDFOR >>>>> IF TYPE( 'lo.NAME' ) = 'C' ; && Locals window shows lo as .F. here >>>>> AND lo.WINDOWSTATE = 1 >>>>> lo.WINDOWSTATE = 0 >>>>> ENDIF >>>>>>>>>>but this does
>>>>>myForm.method() >>>>> LOCAL lo, lc, loParent >>>>> lc = WPARENT( THIS.NAME ) >>>>> FOR EACH lo IN _VFP.FORMS >>>>> IF lo.NAME == lc >>>>> loParent = lo >>>>> EXIT && Locals window shows lo as object here >>>>> ENDIF >>>>> ENDFOR >>>>> IF TYPE( 'loParent.NAME' ) = 'C' ; && Locals window shows lo as .F. here >>>>> AND loParent.WINDOWSTATE = 1 >>>>> loParent.WINDOWSTATE = 0 >>>>> ENDIF >>>>>