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() ENDIFObviously 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 >>>>