How to detect a change in a global variable ?

scott at elementarysoftware.com scott at elementarysoftware.com
Sat Jul 26 05:16:44 EDT 2025


Oops… just for thoroughness:  In the last handler I forgot to add the line “put empty into sFlag” after the repeat loop

--
Scott Morrow

Elementary Software
(Now with 20% less chalk dust!)
web       https://elementarysoftware.com/
email     scott at elementarysoftware.com
booth    1-360-734-4701
------------------------------------------------------


> On Jul 26, 2025, at 1:59 AM, scott--- via use-livecode <use-livecode at lists.runrev.com> wrote:
> 
> The way that the loop is written would make it blocking. If you wanted the loop to start running and then stop after the mouseUp happens I think you would need to add a "wait x millisec with messages” 
> 
> Fo example:
> 
> global myVar
> 
> on elsoTester
>    put 0 into myVar
>    -- some code
>    repeat until myVar > 0
>         --  set the thumbPosition of scrollBar "ProgressBar" to (the thumbPosition of scrollBar "ProgressBar" + 5)  --   testing
>        wait 500 millisec with messages
>    end repeat
>    -- some code
>    answer "Finished"
> end elsoTester
> 
> 
> Depending on what you are doing, another method would be to use a "send it time" mechanism where the handler keeps calling itself until myVar > 0 
> For example:
> 
> 
> local sFlag
> global myVar
> 
> command elsoTester
>    if sFlag is empty then
>        put 0 into myVar
>       -- some code
>    end if
> 
>    repeat until myVar > 0
>          --  set the thumbPosition of scrollBar "ProgressBar" to (the thumbPosition of scrollBar "ProgressBar" + 5)   --   testing
>         put “waiting” into sFlag
>         send elsoTester to me in 500 millisec
>         exit elsoTester
>    end repeat
> 
>    answer “Finished"
> end elsoTester
> 
> To be thorough  you might also might want to empty the message queue of any other elsoTester messages before sending in time or add a timer which will eventually time out if myVar doesn’t exceed 0 after a set time.
> 
> --
> Scott Morrow
> 
> Elementary Software
> (Now with 20% less chalk dust!)
> web       https://elementarysoftware.com/
> email     scott at elementarysoftware.com
> booth    1-360-734-4701
> ------------------------------------------------------
> 
>> On Jul 26, 2025, at 12:44 AM, jbv via use-livecode <use-livecode at lists.runrev.com> wrote:
>> 
>> Hi list,
>> 
>> Let's say I have a portion of a script like this :
>> 
>> global myVar
>> put 0 into myVar
>> -- some code
>> repeat until myVar > 0
>> end repeat
>> -- some code
>> 
>> and the content of global myVar being changed
>> in a handler of another control :
>> 
>> on mouseUp
>>   global myVar
>>   put 1 into myVar
>> end mouseUp
>> 
>> I know this is not very elegant, but my question is :
>> can the change in myVar be detected in a loop like
>> above ?
>> I made some tests and it doesn't seem to work...
>> 
>> Thank you in advance.
>> jbv
>> 
>> _______________________________________________
>> 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
> 
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> 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