NS BASIC Tech Note March 20, 1997
39. Proper use of SETVALUE
-----------------------------------------------------------------
The SETVALUE function can be a useful function when used properly. It's
most common use is to update the viewBounds or text value of widget that
is already displayed. It causes the widget to be redrawn with the new
values.
1. Documentation for NS BASIC before Rev 3.0 showed SETVALUE usually
being called as follows:
unused=SETVALUE(U.widget.entryline,'text, newvalue)
With Rev 3.0 on, this can be coded more compactly
SETVALUE(widget.entryline,'text, newvalue)
2. Cloning the 3rd argument
In almost all cases, you should enclose the third argument in a CLONE()
function as follows:
SETVALUE(widget.entryline,'text, clone(newvalue))
This is especially true when you are using "" as the third argument.
Always code as follows:
SETVALUE(widget.entryline,'text, clone(""))
The Newton uses a ":=" style assignment of the third argument to the
second. Should the value of the second parameter change, the value of the
third argument will also be changed, regardless of how the statement
reads in the program. By CLONE()ing it, you assign a copy of the third
argument, not the third argument itself.