The way to capture a return value from a MIAW is to use "the result"
function...

It works this way:

-- the MIAW (let's call it window "myWindow") does whatever it's supposed to
do

 on doSomething x
   y = x + 1
   return y --  this is where the value is returned
 end


-- the stage trigers a handler in the above miaw and captures the return
value
 
 x = 1
 tell window "myWindow"
   doSomething(x) -- or if you are not sending anything the just
doSomething() with parenthesis "()"
 end tell
 pVar = the result -- this variable will capture whatever the handler within
the MIAW has returned


That's it...you can use the same method "the result" to capture any return
values from a handler although within the same movie it's easier to just
asign a variable to the whole handler

E.g:

 on mouseUp
  x = 1
  pValue = doSomething(x)--when calling a handler that returns a value you
must use parenthesis at the end ()
  put pValue
 end


 -- somewhere else in the same movie you have the doSomething handler
  
 on doSomething x
  y = x + 1
  return y -- you must use the "return" statement to return the calculation
back
 end

Hope this helps

Pedja


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Valentin Schmidt
Sent: 31 January 2005 19:34
To: Lingo programming discussion list
Subject: Re: <lingo-l> Objects: One for the gurus


sorry, my last mail contained some accidental junk script due to copying and
pasting. so here again:

you could either use a global:

global gData

gData = 23
window("something").open()
tell window("something")
    foo()
end tell
put gData
-- 46

and in something.dir:

on foo
    global gData
    gData = gData * 2
end



OR, use a list as parameter to implement passing by reference:


window("something").open()
data = 23
tmpList = [data]
tell window("something")
    foo(tmpList )
end tell
put tmpList[1]
-- 46

and in something.dir:

on foo (tList)
    tList[1] =  tList[1]*2
end


Valentin


Jon Alongi wrote:
> Hi people/gurus,
>
>
> I hope someone can help me.
>
>
> I have for hours been trying to work out a solution to no avail.
>
> Does anyone know if it is possible and how to return a value from a 
> MIAW.
>
> I am using an object to open up a MIAW, perform a calculation, and 
> would then like the result returned to my variable.
>
> For example:
>
> MyVariable = fileIO.dosomething("parameter")
>
>
> Parent script
>
> On doSomething me, paremter
>
> Window("something").open() --perform calculation in the MIAW
>
> RETURN data
> End
>
>
>
>
> Is this even possible.
>
> Id really welcome the advise, no matter how unorthodox.
>
>
>
> Best Regards
>
>
> Jon
>
>
>
>
> [To remove yourself from this list, or to change to digest mode, go to 
> http://www.penworks.com/lingo-l.cgi  To post messages to the list, 
> email [email protected]  (Problems, email 
> [EMAIL PROTECTED]). Lingo-L is for learning and helping with 
> programming Lingo.  Thanks!]

[To remove yourself from this list, or to change to digest mode, go to
http://www.penworks.com/lingo-l.cgi  To post messages to the list, email
[email protected]  (Problems, email [EMAIL PROTECTED]). Lingo-L is
for learning and helping with programming Lingo.  Thanks!]





[To remove yourself from this list, or to change to digest mode, go to 
http://www.penworks.com/lingo-l.cgi  To post messages to the list, email 
[email protected]  (Problems, email [EMAIL PROTECTED]). Lingo-L is for 
learning and helping with programming Lingo.  Thanks!]

Reply via email to