Руководство разработчика

Обработчик ТАБ_ФОРМА.меню

Обработчик события меню вызывается при нажатии пользователем правой кнопки мыши или клавиши "контекстное меню" на клавиатуре. Функция-обработчик может сформировать контекстное меню для показа пользователю. При выборе пользователем некоторого пункта меню, соответствующий строковый код команды будет передан в обработчик команда.

ФУНКЦИЯ ЛОГИКА: <имя функции>(ПЕРЕМ ТАБ_ФОРМА: форма; 
                              ПЕРЕМ МЕНЮ: м)

Параметры

форма
Экземпляр табличной формы, для которой происходит запрос меню.
м
Начальное состояние меню, которое может иметь некоторое стандартное наполнение для элементов управления. Для самой табличной формы меню по умолчанию не предусмотрено.

Возвращаемое значение

ДА – если функция-обработчик подтверждает показ меню, НЕТ – если запрещает.

Для элементов управления в ячейках табличной формы запрос контекстного меню может привести к вызову обработчика меню табличной формы, если их собственный обработчик отсутствует или вернул НЕТ.

Вид контекстного меню и доступность его действий обычно зависят от текущего выделения. Получить текущую позицию курсора можно методом КУР_ЯЧЕЙКА, а список ячеек множественного выделения – методом ВЫДЕЛЕНИЕ.

Пример

/* вид контекстного меню зависит от текущей позиции курсора */ 
ПОДМЕНА меню = {Меню};
ФУНКЦИЯ ЛОГИКА: Меню(ПЕРЕМ ТАБ_ФОРМА: форма; ПЕРЕМ МЕНЮ: м)
  ПЕРЕМ ТФ_ЯЧЕЙКА: ячейка
  КУР_ЯЧЕЙКА(ячейка)
  ВЫБОР(ячейка.строка)
    # 2, 3, 4: 
      РЕЗУЛЬТАТ = ДА
      м.пункты = (
        1: [ текст = "Добавить проводку", команда = "ДОБ_ПРОВ" ],
        2: [ текст = "Удалить проводку", команда = "УД_ПРОВ" ],
        3: [],
        4: [ текст = "Настройка", команда = "НАСТР"]
        )
  ИНАЧЕ 
    РЕЗУЛЬТАТ = НЕТ
  КОНЕЦ_ВЫБОРА
КОНЕЦ_ФУНКЦИИ

См. также: