Bruce,
>Another question: how do you put memory variables as GET fields on forms?
Generally in VFP you don't bind controls to memvars. With table buffering you can more easily directly edit table fields and use TableUpdate() to commit changes and TableRevert() to rollback changes.
If you don't want to use a table, you can set up form properties (Form, New Property menu) and bind the control to thisform.YourProperty. This encapsulates the form better than using memvars.
If you don't want to use object properties, just set the ControlSource to m.YourWithinScopeMemvar, but again binding to memvars ala 2.x code doesn't make use of the power of VFP.