doMenu
Ken Ray
kray at sonsothunder.com
Mon Aug 8 14:56:14 EDT 2005
On 8/8/05 12:26 PM, "Robert Presender" <rpresender at cox.net> wrote:
> Using rev 2.5.1, OS 10.3.9
>
> I want to activate a menuItem of a menu btn of a particular stack from
> a handler in a different stack. For testing, I put the below script
> into the message box
>
> doMenu menuItem 1 of btn "X" of group "MenuBar 1" of stack "Y"
>
> The result was: doMenu (the name of menuItem 1) is not implemented.
>
> Would appreciate suggestions of how to activate a menuItem as indicated
> in line 2 above.
Well, menu selections from the menu itself create menuPick messages which
are usually trapped in the menu button itself. Some people like to put the
code directly in the button for the menu item's functionality, like:
-- File menu
on menuPick pChoice
switch pChoice
case "Open"
answer file "Select a file to open:"
if it <> "" then
-- rest of script here
end if
break
case "Print"
-- etc.
break
end switch
end menuPick
Personally, I like to move the actual menu action code somewhere else, like
in a stack script, library or backscript so that I can call it from other
places, like:
-- File menu
on menuPick pChoice
switch pChoice
case "Open"
FileOpen
break
case "Print"
-- etc.
break
end switch
end menuPick
So in this case, activating the "Open" menu item would be simply executing
"FileOpen" and have it run a handler elsewhere.
However, if you are "stuck" with activating code that is *in* the button,
you need to send the menuPick message along with the proper param to the
button in question. Using the example above, that would be:
send "menuPick" && quote & "Open" & quote to button "File"
of group "MenuGroup"
Hope this helps,
Ken Ray
Sons of Thunder Software
Web site: http://www.sonsothunder.com/
Email: kray at sonsothunder.com
More information about the use-livecode
mailing list