global variable change in substack not available to main stack

Slava Paperno slava at lexiconbridge.com
Sun Jul 10 03:39:04 EDT 2011


Thanks Stephen and Ian. It is true that I declare each global variables
inside every handler where it is used. I have a sizable application now
where this strategy is employed everywhere. In doing so I followed this
statement in the User Guide to 4.6.2:

5.5.4 Global Variables (page 143, below the pink Important box)
"You can use the global command either inside a handler, or outside any
handler at the top of a script (like a script local)."

In choosing between these two recommendations I decided that putting the
global declaration inside the handler makes the handler more portable.

But I'll follow your advice and mess with this some more after a good
night's sleep.

Gratefully,

Slava

> -----Original Message-----
> From: use-livecode-bounces at lists.runrev.com [mailto:use-livecode-
> bounces at lists.runrev.com] On Behalf Of Ian McKnight
> Sent: Sunday, July 10, 2011 2:23 AM
> To: How to use LiveCode
> Subject: Re: global variable change in substack not available to main
> stack
> 
> Hi
> 
> I just recreated you scripts in a stack.
> 
> Stephen Barncard is correct the more usual place to put the global
> statement
> is outside the handlers at the top of the script.
> 
> However. Your original card script is incomplete since the 'put'
> statement
> needs to be put into a handler.
> 
> eg
> global gBgColor
> 
> on openstack -- or preOpenStack or whatever
>    put 0, 0, 0 into gBgColor
> end openstack
> 
> When I made this change the gBgColor reflects changes made in the
> mousedown
> script.
> 
> 
> BTW I know that it works the way you have it but when using colour info
> like
> 0,0,0 I would recommend putting it into quotes "0,0,0"
> 
> HTH
> 
> On 10 July 2011 07:02, Slava Paperno <slava at lexiconbridge.com> wrote:
> 
> > In openCard script of the main stack:
> >
> > global gBgColor
> > put 0, 0, 0 into gBgColor
> >
> >
> > In a button script in a substack:
> >
> > on mouseUp
> >        global gBgColor
> >
> >        answer color with gBgColor --white is selected
> >        put it into gBgColor
> >
> >        put gBgColor & cr after msg
> >        --255, 255, 255
> > end mouseUp
> >
> > In the Variables panel below script editor (after it is refreshed),
> > gBgColor
> > is shown to be 0, 0, 0.
> >
> > In the Message box:
> >
> > put gBgColor
> > --0, 0, 0
> >
> >
> > In other words, the change to a global variable that is made in a
> substack
> > is not available to the global variable of the same name in a script
> in the
> > main stack.
> >
> > Just last week I carefully followed the discussion of the use of
> global
> > variables (and even participated a little by quoting the User Guide
> on the
> > availability of globals to all substacks), but now I see the same
> problem
> > that was reported by the original poster.
> >
> > Is it just me now? Or is it the late hour?
> >
> > Slava
> >
> >
> >
> > _______________________________________________
> > use-livecode mailing list
> > use-livecode at lists.runrev.com
> > Please visit this url to subscribe, unsubscribe and manage your
> > subscription preferences:
> > http://lists.runrev.com/mailman/listinfo/use-livecode
> >
> 
> 
> 
> --
> Regards
> 
> 
> Ian McKnight
> 
> iangmcknight at gmail.com
> =======================
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode






More information about the use-livecode mailing list