iArnold — 16-Oct-2015/15:22:45-7:00
Hi,
I found out how to grab a string containing a playing song from one of my favourite webradio stations, and I like to turn these into a playlist of played songs. I quickly stuck some program together and I am done. I let my program poll every 60 seconds for a new title. Now I like to make a View version where I have a Start button to start and Stop this process. How can I best do this?
Nick — 16-Oct-2015/23:59:41-7:00
http://business-programming.com/business_programming.html#section-17.15
One way is to use view/new and a forever loop. Put the activity you want periodically evaluated in the forever loop. Use 'wait to rest any specified period of time, and use a flag variable to determine whether or not any specific activity should occur (here, that variable is 'go). This works because the do-events loop never starts when using view/new:
R E B O L [title: "Multitasking 1"]
go: 1
gui: view/new layout [
t: text form now/time
btn "Stop" [go: 0]
btn "Start" [go: 1]
]
forever [
if go = 1 [t/text: form now/time show gui]
wait .01
]
Another way is to assign a 'feel to any widget (could be a sensor, or any widget hidden off screen). Change the rate to 0 (or some other period) to start the activity, and 'none to stop the activity:
R E B O L [title: "Multitasking 2"]
view layout [
t: text form now/time rate 0 feel [
engage: func [f a e] [
if a = 'time [
t/text: form now/time show t
]
]
]
btn "Stop" [t/rate: none]
btn "Start" [t/rate: 0 t/text: form now/time show t]
]
Nick — 17-Oct-2015/0:04:47-7:00
Search http://re-bol.com/short_rebol_examples.r for "forever" and "rate" to see a number of each technique in use.
iArnold — 18-Oct-2015/13:55:39-7:00
Thank you Nick! Will send you a playlist soon ;-)