Page 1 of 1

calling a handler as a variable

Posted: Sun Feb 09, 2014 4:48 pm
by adventuresofgreg
Hi: referencing the name of a handler as a variable won't work. Any idea how to accomplish this?

ie the following won't work, but gives you an example of what I'm trying to do:

-------
put "runThisSystem" into myHandlerName

if this then myHandlerName (var1,var2)
-------

When I run "myHandlerName", I actually want to run "runThisSystem"

Re: calling a handler as a variable

Posted: Sun Feb 09, 2014 5:26 pm
by Dixie

Code: Select all

on mouseUp
   put "runThisSystem" into myHandlerName
   
   if myHandlerName = "runThisSystem" then
      runThisSystem
   end if
end mouseUp

on runThisSystem
   beep
end runThisSystem
strange...

Re: calling a handler as a variable

Posted: Sun Feb 09, 2014 5:37 pm
by Klaus
Hi Greg,

just DO it :D
...
put "runThisSystem" into myHandlerName
do myHandlerName
...

Best

Klaus

Re: calling a handler as a variable

Posted: Sun Feb 09, 2014 6:45 pm
by adventuresofgreg
Klaus - oops, it's a FUNCTION, not a handler. Sorry. It's like this:

...
put "runThisSystem" into myFUNCTIONname
put myFUNCTIONname (var1,var2,var3) into whatever
...

Re: calling a handler as a variable

Posted: Sun Feb 09, 2014 6:49 pm
by adventuresofgreg
Hi Dixie: Sorry, it was a FUNCTION, not a handler. Yes your solution would work, but for other reasons, I can't run a bunch of if scenarios. The user would type the name of the system to run in a field, and the script should just find the function in the stack scripts and run it. Every time I add a new function, I don't want to add a corresponding "if then". you know?

Dixie wrote:

Code: Select all

on mouseUp
   put "runThisSystem" into myHandlerName
   
   if myHandlerName = "runThisSystem" then
      runThisSystem
   end if
end mouseUp

on runThisSystem
   beep
end runThisSystem
strange...

Re: calling a handler as a variable

Posted: Sun Feb 09, 2014 7:10 pm
by dunbarx
Hi.

Like this?

Code: Select all

on mouseUp
   put any item of "A,B,C"  into var
   put "runThisSystem"  && var into myHandlerName
      
   answer runThisSystem(var)
end mouseUp

function runThisSystem var
   return  "You chose" && var
end  runThisSystem
Craig

Re: calling a handler as a variable

Posted: Sun Feb 09, 2014 8:09 pm
by Klaus
dunbarx wrote:Hi.

Like this?

Code: Select all

on mouseUp
   put any item of "A,B,C"  into var
   put "runThisSystem"  && var into myHandlerName
      
   answer runThisSystem(var)
end mouseUp

function runThisSystem var
   return  "You chose" && var
end  runThisSystem
Craig
:D :D :D :D

Value can help here:
...
put "runThisSystem" into myFUNCTIONname
put VALUE("myFUNCTIONname (var1,var2,var3)") into whatever
...
tested and works!


Best

Klaus

Re: calling a handler as a variable

Posted: Sun Feb 09, 2014 8:41 pm
by adventuresofgreg
That's it Klaus. I've never used VALUE before. Thanks!