Script local variables - Found word(s) list error in the Text body
Bob Sneidar
bobsneidar at iotecdigital.com
Sun Feb 23 17:57:39 EST 2014
Okay I just did a simple test. Given:
local sVar = "abc"
on mouseUp
breakpoint
put sVar
put "abc" into bVar
put "123" into sVar
end mouseUp
With Variable Preservation turned on, the first time through I get “abc” in the message box. The second time through I get “123” in the message box as you would expect. I then make a script edit and recompile. The next time I get “abc” in the message box, definitively proving that recompiling DOES in fact re-initialize the local variable WITH Variable Preservation turned on!
Now I change the first line to read: local sVar and the turn variable preservation off. I make a script edit the variable resets. If I turn on variable preservation it does not. So it appears that pre-loading a value into a script local variable TRUMPS variable preservation, in the sense that the recompile will ALWAYS reinitialize the script local variable at compile time.
HTH
Bob
On Feb 23, 2014, at 13:02 , Peter Haworth <pete at lcsql.com> wrote:
> Sorry, hit send too soon. Her's a more detailed version.
>
> In a card script, I have
>
> local sVar="xyz"
>
> function getVar
> return sVar
> end getVar
>
> command changeVar
> put "abc" into sVar
> end changeVar
>
> In button A on the card, I have:
>
> on mouseUp
> put getVar()
> end mouseUp
>
> In button B on the card, I have
>
> on mouseUp
> changeVar
> end mouseUp
>
> I click button A and "xyz" appears in the message box.
>
> I click button B, then button A and "abc" appears in the message box. So
> you can change the value of script local variables with values assigned in
> this way.
>
> Here's the interesting part. I deliberately caused a script compile error
> in the card script, corrected it, and recompiled, then clicked button B,
> and "xyz" appeared in the message box.
>
> So it appears that script compile errors don't wipe out the original value
> assigned to a script local variable in this way, but not any subsequent
> changes made to it. I guess that makes sense because it seems like the
> value is assigned to the script local variable every time a handler in the
> script is executed.
>
>
>
>
> Pete
> lcSQL Software <http://www.lcsql.com>
> Home of lcStackBrowser <http://www.lcsql.com/lcstackbrowser.html> and
> SQLiteAdmin <http://www.lcsql.com/sqliteadmin.html>
>
>
> On Sun, Feb 23, 2014 at 12:52 PM, Peter Haworth <pete at lcsql.com> wrote:
>
>>
>> On Sun, Feb 23, 2014 at 11:14 AM, J. Landman Gay <jacque at hyperactivesw.com
>>> wrote:
>>
>>> I haven't tried it yet, maybe someone else can confirm.
>>
>>
>> Yes, you can change the value of a script local variable in the way you
>> described
>>
>> What's really interesting though is that the value of a script local
>> variable assigned in this way is NOt wiped out by a script compile error.It
>> feels like the value is assigned to the variable each and every time a
>> handler in the script is executed.
>>
>>
>>
>> Pete
>> lcSQL Software <http://www.lcsql.com>
>> Home of lcStackBrowser <http://www.lcsql.com/lcstackbrowser.html> and
>> SQLiteAdmin <http://www.lcsql.com/sqliteadmin.html>
>>
> _______________________________________________
> 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