>In VFP 6.0 SP5 (or SP3?) the following code worked:
>
>MODI FORM (myform) NOWAIT
>
>FOR ln = 1 TO _screen.FormCount
> IF _screen.Forms(ln).Name = "form1"
> lo = _screen.Forms(ln)
> EXIT
> ENDIF
>ENDFOR
>lo.Caption = "I can change the form's caption in developer mode!"
>
>I could run this code from within an APP, EXE or PRG and use it to modify the form in design mode. But in VFP 7.0 the form being modified is not shown in the _screen.Forms collection.
>
>Was this an undocumented feature that was taken out of VFP 7.0? Will it be in VFP 8.0? I was able to create several form builders using this technique and they have saved me hours.
>
>What happened to one of my favorite features of VFP?
The Forms collection is 0-indexed, so that you should say either:
FOR ln = 0 to _Screen.FormCount-1
or
FOR EACH lo OF _Screen.Forms
and then check to make sure that you actually found a hit - the error you encounter occurs when you step beyond the domain of Items indexed in the Forms collection. The memvar
lo is not an object if no hit occurs in the FOR loop.