Test Variable?

Jim Ault JimAultWins at yahoo.com
Fri Feb 10 19:35:47 EST 2006


On 2/10/06 3:37 PM, "Phil Davis" <davis.phil at comcast.net> wrote:
 
> When you declare a global within a handler, the data that goes into it
> will stay there, but no other handler can access it - the place where
> you declare a variable determines its scope. Put the "global" statement
> at the top of your script, outside of all handlers; then all handlers in
> that script can access it.
> 
> If your 'openField' handler is in a different script (like of a field),
> then that script will also need to contain a "global varCmdLineParamIn"
> statement for the var to be accessible there.

Actually, 
* no other handler can access it * is not correct.
Declaring a global anywhere creates it in the Rev app.  It is live until you
quit Rev or do "delete global gComputerName"

--example
on doThisStep
  global gComputerName
  put "Fred" into gComputerName
end doThisStep

--at this point, the Rev app has control over the global gComputerName and
any stack or handler can access this global by doing

on buildMyString
  global gComputerName
  put "Working on " & gComputerName into stringToWrite
end buildMyString


Declaring the global in any handler will give that handler access to it.
The confusion comes in when you consider that the following:

--top of stack script
global gComputerName

--now means that any handler in this script has access to the global without
having to declare it.  Of course, declaring it again in a handler makes it
appear in the Variable Watcher twice (or more in 2.6.1 Mac) so you should
only declare the globals one time.

Hope this helps

Jim Ault
Las Vegas





More information about the use-livecode mailing list