Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
9.5
10.0
10.1
10.2
10.3
10.4
10.5
11.0
11.1
11.2
Statistic
FMM
Blog
Pops up the menu at the specified location.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
Menu | 4.1 | ✅ Yes | ✅ Yes | ❌ No | ❌ No | ❌ No |
Parameter | Description | Example | Flags |
---|---|---|---|
menu | The reference to the menu. Please create one with Menu.CreateMenu. | $menu | |
mode | The mode to use. Can be "mouse", "screen" or "window". Default is mouse for leaving away the parameter or passing empty text. Version 8.3 adds mode "content" to make it relative to the content part of the window, below toolbars. |
"mouse" | |
x | The relative x coordinates for the position relative to the mouse, screen or window. | 0 | Optional |
y | The relative y coordinates for the position relative to the mouse, screen or window. | 0 | Optional |
window | The window reference for the showing menu relative to a window. | $window | Optional |
item | The menu item to be positioned at the specified location in the view. macOS only. |
$item | Optional |
objectName | The object name for mode=object. | "web" | Optional |
Returns 1, 0 or error.
Show a context menu based on a table with menu entries:
# go to layout with menu entries
Go to Layout [ “REP” (REP Reports) ]
# this script can be called with various groups
Set Variable [ $type ; Value: Get(ScriptParameter) ]
# make a new menu
Set Variable [ $menu ; Value: MBS( "Menu.CreateMenu") ]
# loop over records
Go to Record/Request/Page [ First ]
Loop
# if group matches
If [ REP Reports::Group = $type ]
# add new menu item with title from table
Set Variable [ $item ; Value: MBS( "MenuItem.CreateMenuItem"; REP Reports::LabelReport) ]
# define which script to call if menu item is selected
Set Variable [ $r ; Value: MBS( "MenuItem.SetScriptAction"; $item; Get(FileName); REP Reports::Script ) ]
# add item to menu
Set Variable [ $r ; Value: MBS( "Menu.AddItem"; $menu; $item ) ]
End If
# next record?
Go to Record/Request/Page [ Next ; Exit after last ]
End Loop
# switch layout back
Go to Layout [ original layout ]
# Show menu
Set Variable [ $r ; Value: MBS( "Menu.PopUp"; $menu; "mouse") ]
# Cleanup memory
Set Variable [ $r ; Value: MBS( "Menu.Release"; $menu) ]
Show menu and show selection:
Set Variable [$menu; Value:MBS("Menu.CreateMenu")]
# create menu items...
Set Variable [$item; Value:MBS("MenuItem.CreateMenuItem"; "Hello World")]
Set Variable [$r; Value:MBS("MenuItem.SetTag"; $item; "secret value")]
Set Variable [$r; Value:MBS("Menu.AddItem"; $menu; $item)]
#
#show menu
Set Variable [$m; Value:MBS("Menu.PopUp"; $Menu; "mouse")]
#
#you selected something?
If [$m = 1]
Set Variable [$selectedItem; Value:MBS("Menu.SelectedItem"; $menu)]
Set Variable [$selectedTitle; Value:MBS("MenuItem.GetTitle"; $selectedItem)]
Set Variable [$selectedTag; Value:MBS("MenuItem.GetTag"; $selectedItem)]
#
Show Custom Dialog ["Auswahl"; $selectedItem & ¶ & $selectedTitle & ¶ & $selectedTag]
End If
Set Variable [$m; Value:MBS("Menu.Release"; $Menu; 1)]
Choose from menu with one Let statement:
// show menu with one let statement
Let ( [
// some list of menu entries
valuelist = "xxx¶yyy¶zzz" ;
// create menu from definition
menu = MBS ( "Menu.DefineQuickMenu"; "x" ; valuelist ) ;
// show menu near mouse
result = MBS ( "Menu.PopUp" ; menu ; "mouse" ) ;
// query selected item number
item = IF ( result = 1 ; MBS("Menu.SelectedItem"; menu) ) ;
// query title for that item
title = IF ( Length ( item > 0 ) ; MBS ( "MenuItem.GetTitle" ; item ) ) ;
// release memory
r = MBS ( "Menu.Release"; menu ) ] ;
// return the selected title
title )
Run menu at logo object:
MBS("Menu.PopUp"; $Menu; "object"; 0; 0; Get(WindowName); ""; "logo")
Created 18th August 2014, last changed 19th February 2021
Menu.NumberOfItems - Menu.Release
Feedback: Report problem or ask question.