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