True,but setting up locals, getting values and at end resetting also takes time.
Having witnessed "With" problems, my choice often is to use proxy objects, setting value once to shorten access path.
local loProxyPage1
loProxyPage1 = This.parent.parent.Page1
if loProxyPage1.txt_UserName1.Value == loProxyPage1.txt_UserName2.Value
endif
>It is slower to operate with objects than memvars.
>LOCAL lcUser1, lcUser2
>lcUser1=This.parent.parent.Page1.txt_UserName1.Value
>lcUser2=This.parent.parent.Page1.txt_UserName2.Value
>IF not ALLTRIM(m.lcUser1)==ALLTRIM(m.lcUser2)
> *It's not exact.