Application.ShowPopupMenu

number Application.ShowPopupMenu ( number X,
number Y,
table Menu,
number HAlign = TPM_LEFTALIGN,
number VAlign = TPM_TOPALIGN,
boolean WaitForReturn = true,
boolean ClientCoordinates = true )
Примеры

Описание

Показывает всплывающее (контекстное меню) и возвращает идентификатор (ID) кликнутого пункта меню.

Совет: Если нужно показать всплывающее меню при правом клике пользователя по иконке в системном трее, посмотрите встроенную глобальную функцию g_OnSystemTrayMenu.

Параметры

X

(число) X координата в пикселях.

Y

(число) Y координата в пикселях.

Menu

(таблица) Таблица данных меню, проиндексированная следующими ключами:

КЛЮЧ
KEY
ТИП
TYPE
ОПИСАНИЕ
DESCRIPTION
IDчислоЧисловой идентификатор (ID) пункта меню.
TextстрокаТекст пункта меню. Используйте символ & перед буквой для установки мнемоники. Отметьте, что для создания элемента разделения устанавливаем пункт Text как "---". В этом случае пункты ID, Checked, Enabled и SubTable игнорируются. Разделитель пунктов не будет запускать событие On Menu.
Enabled логическийРазрешен ли пункт меню.
CheckedлогическийОтмечен ли пункт меню.
IconIDчислоИндекс (указатель) иконок, начинающийся с 0, из Image List- Списка изображений указанный на Menu Bar - панели меню чтобы использовать для пункта меню. Переключатель Use image list - Использовать список изображений должен быть отмечен для того, чтобы иконки стали доступными.
SubTableтаблицаЧисленно индексированная таблица таблиц пунктов меню. Она создает всплывающее меню для этого пункта. Отметим, что если SubTable определен, этот пункт меню никогда не запустит событие On Menu. Взамен, событие будут запускать его подпункты.

HAlign

(число) Горизонтальное выравнивание меню относительно оси X.  Выбор из следующих констант (постоянных):

КОНСТАНТА
CONSTANT
ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
TPM_LEFTALIGN0Выравнивание меню по левому краю.
TPM_CENTERALIGN4Выравнивание меню по центру.
TPM_RIGHTALIGN8Выравнивание меню по правому краю.

VAlign

(число) Вертикальное выравнивание меню относительно X. Выбор из следующих констант (постоянных):

КОНСТАНТА
CONSTANT
ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
PM_TOPALIGN0Выравнивание меню по верху.
TPM_VCENTERALIGN16Выравнивание меню по центру.
TPM_BOTTOMALIGN32Выравнивание меню по низу.

WaitForReturn

(логический) Ожидать ли что контекстное меню будет отклонено. Если установлено значение истина (true), возвращаемым значением Application.ShowPopupMenu будет идентификатор (ID) выбранной команды меню или 0, если меню отменено. Если установлено значение ложь (false), команда меню запустит событие On Menu от проекта (Project) и страницы (Page), при выборе пункта.

Примечание: Если установлено значение ложь (false), при выборе пункта меню также будут вызваны g_OnUpdateMenuEnabled и g_OnUpdateMenuCheck. Кстати, если WaitForReturn установлена в ложь (false), команды меню, что использовались во всплывающем (контекстном) меню, точно так же ДОЛЖНЫ быть представлены в основной панели меню.

ClientCoordinates

(логический) Истина (true), если значения X и Y будут выбираться относительно верхнего левого угла страницы, ложь (false), если значения X и Y будут относительно верхнего левого угла экрана пользователя.

Возврат

ResultVariable

(число) Идентификатор (ID) кликнутого пункта меню. Если происходит ошибка, будет возвращена -1. Можно использовать Application.GetLastError для определения случился ли отказ в работе этого действия и почему.

При добавлении действия из редактора скрипта, можно использовать это поле для определения переменной, которая возвращает значение, сохраняющееся в ней.
Смотрите также: Связанные действия

Примеры

Пример 1

if (e_Type == RIGHT_BUTTON_DOWN) then
    tblMenu = {};
    tblMenu[1] = {};
    tblMenu[1].Text = "&New Menu";
    tblMenu[1].ID = 100;
    tblMenu[1].IconID = 0;
    tblMenu[1].Checked = false;
    tblMenu[1].Enabled = true;
    tblMenu[1].SubMenu = {};
    tblMenu[1].SubMenu[1] = {};
    tblMenu[1].SubMenu[1].Text = "&SubItem 1";
    tblMenu[1].SubMenu[1].ID = 101;
    tblMenu[1].SubMenu[1].IconID = 1;
    tblMenu[1].SubMenu[1].Checked = false;
    tblMenu[1].SubMenu[1].Enabled = true;
    tblMenu[1].SubMenu[2] = {};
    tblMenu[1].SubMenu[2].Text = "S&ubItem 2";
    tblMenu[1].SubMenu[2].ID = 102;
    tblMenu[1].SubMenu[2].Checked = false;
    tblMenu[1].SubMenu[2].Enabled = true;

    nRes = Application.ShowPopupMenu(e_X, e_Y, tblMenu, TPM_LEFTALIGN, TPM_TOPALIGN, true, true);

    if (nRes == 0) then
        Dialog.Message("Menu Result", "Cancelled");
    else
        Dialog.Message("Menu Result", "Menu ID selected = " .. nRes);
    end
end
Динамически создает всплывающее меню и показывает его когда пользователь кликает правой кнопкой мышки в любом месте поверхности страницы приложения.
Смотрите также: Связанные действия