Справочное руководство по TDMS 7.0 API
ContextMenuBeforeShow Событие
Смотри также  Пример  Отправить замечание
pCommands
Коллекция команд, назначенных объекту (они будут показаны в верхней части контекстного меню).
pObject
Объект, чье контекстное меню будет выведено на экран.
bCancel
TRUE - отменить вывод контекстного меню на экран.
TDMSApplication Объект : ContextMenuBeforeShow Событие

Glossary Item Box

Описание

Генерируется перед выводом на экран контекстного меню объекта.

Опеделение

Visual Basic
Public Event ContextMenuBeforeShow( _
   ByVal pCommands As TDMSCommands, _
   ByVal pObject As TDMSObject, _
   ByRef bCancel As Boolean _
)

Параметры

pCommands
Коллекция команд, назначенных объекту (они будут показаны в верхней части контекстного меню).
pObject
Объект, чье контекстное меню будет выведено на экран.
bCancel
TRUE - отменить вывод контекстного меню на экран.

Заметки

1. Событие является отменяемым: если параметру bCancel присвоено значение TRUE, контекстное меню не будет показано на экране (однако события ContextMenuItemAdd в этом случае все равно наступают).

2. Событие не может быть сгенерировано программно - в API TDMS нет метода, позволяющего показать контекстное меню объекта.

3. Обработчик может быть размещен в скриптах объекта, профиля и/или общесистемном. Если обработчики определены на всех уровнях, то последовательность их вызова такова:

  • скрипт объекта;
  • скрипт профиля пользователя;
  • общесистемный скрипт.

Если на каком-либо уровне событие было отменено (параметру bCancel присвоено значение TRUE), то обработчики события, размещенные на последующих уровнях, вызваны не будут.

4. Событие генерируется при вызове контекстного меню:

  • на любом объекте (в Дереве объектов или на Панели состава);
  • на узлах Desktop и Root Дерева объектов;
  • кнопкой "Команды" на панели инструментов в Окне свойств объекта.

5. Желательно не использовать в обработчике события функции вывода диалогов типа MsgBox(). При этом происходит переключение фокуса на окно диалога, и дальнейшее поведение объекта может быть некорректным (могут не выполняться некоторые команды контекстного меню и т.п.)

6. Схему последовательности генерации событий при вызове контекстного меню на объекте в Дереве объектов см. на рисунке:

Пример

Пример обработки события ContextMenu_BeforeShow
VB Script (Visual Basic)Скопировать код
'=============================================================================
'Текст обработчика может быть размещен в скрипте команды, профиля или
'общесистемном скрипте.

Sub ContextMenu_BeforeShow(Commands, Obj, Cancel)
        RetVal = MsgBox("В контекстном меню объекта """ & Obj.Description & _
                    """ содержится " & Commands.Count & " пользовательских команд."_
                    & Chr(13) & "Вывести меню на экран?", vbQuestion & vbYesNo, _
                    "Информация о контекстном меню объекта")
        If RetVal <> vbYes Then
                Cancel = TRUE
        End If
End Sub
'=============================================================================

Смотри также

© 2023 CSoft Development. Все права защищены.