Never mind.  It is in parameters where that does not work.

You are right. This works:

  on mouseup
    put "1" into aTest[1]
    put "2" into aTest[2]
    get return_array(aTest)
    put the result into aResult
    combine aResult using cr
    answer aResult
  end mouseup

  function return_array pArray
    return pArray
  end return_array


But this doesn't (didn't really expect so)

Stack A
---------
  on mouseup
    put "1" into aTest[1]
    put "2" into aTest[2]
    get return_array(aTest)
    send doSomething to button 1 of stack "stackB"
  end mouseup


Stack B
---------
  on doSomething
    put the result into aResult
    combine aResult using cr
    answer "--" & aResult
  end doSomething

------------------------------------------------------------------------ ------------------------------------

What is exactly the scope of this "the result"?
According to the doc: "The result function is set to empty when the current handler finishes executing."
This doesn't work either:

        on mouseup
          put "1" into aTest[1]
          put "2" into aTest[2]
          get return_array(aTest)
          test_result
        end mouseup
        ...
        on test_result
          put the result into aResult
          combine aResult using cr
          answer "--" & aResult
        end test_result

------------------------------------------------------------------------ ------------------------------------

And about passing arrays as parameters, it looks like a challenge indeed.

This works:

Stack A
----------
  put "one" into aTest
  send "doSomething aTest" to button 1 of stack "stackB"

This doesn't
Stack A
---------
  put "1" into aTest[1]
  put "2" into aTest[2]
  send "doSomething aTest" to button 1 of stack "stackB"

------------------------------------------------------------------------ ------------------------------------

Unsurprisingly, this doesn't work:
      set the array_data of button 1 of stack "stackB" to aTest

------------------------------------------------------------------------ ------------------------------------

But this works:

Stack A
---------
on mouseup
  put "1" into aTest[1]
  put "2" into aTest[2]
  set the customproperties of button 1 of stack "stackB" to aTest
  send "doSomething" to button 1 of stack "stackB"
end mouseup

Stack B
---------
on doSomething
  put the customproperties of me into tArray
  .....
end doSomething

Tadam ...
1
2

But I would stay away from this option... too dangerous to use!

------------------------------------------------------------------------ ------------------------------------

Of interest... this works as well

Stack A
---------
on mouseup
  put "1" into aTest[1]
  put "2" into aTest[2]
set the customproperties["test"] of button 1 of stack "stackB" to aTest
  send "doSomething" to button 1 of stack "stackB"
end mouseup

Stack B
---------
on doSomething
  put the customproperties["test"] of me into tArray
  ...
end doSomething


Multidimensional arrays can be used:
(simply because the array indexes are converted into a string)
  put "1" into aTest[1,2,3]
  put "2" into aTest[2,2,3]
 ...
  combine aResult using cr and tab

Thanks for the brainstorming and the ideas!
Marielle

_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to