OnGetItemPopup(Sender: Object; Args: IMetabaseListViewItemPopupEventArgs);
Sender. Параметр, возвращающий компонент, сгенерировавший событие;
Args. Параметр, позволяющий определить параметры события.
Событие OnGetItemPopup наступает в момент вызова контекстного меню для элемента компонента.
Элемент, для которого вызывается контекстное меню, доступен в свойстве IMetabaseListViewItemPopupEventArgs.Item. Используя свойство IMetabaseListViewItemPopupEventArgs.PopupMenu, можно определить собственное контекстное меню, которое будет отображено для элемента.
Если для компонента свойству IMetabaseListView.EnableSystemPopupMenu установлено значение True, то для элементов вызывается системное контекстное меню. В этом случае, используя свойство IMetabaseListViewItemPopupEventArgs.PopupMenu, можно заменить вызываемое системное контекстное меню.
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1», компонента MetabaseListView с наименованием «MetabaseListView1» и двух компонентов PopupMenu с наименованиями «PopupMenu1» и «PopupMenu2».
Добавьте ссылку на системную сборку Metabase.
Sub MetabaseListView1OnGetItemPopup(Sender: Object; Args: IMetabaseListViewItemPopupEventArgs);
Var
MDesc: IMetabaseObjectDescriptor;
Begin
MDesc := Args.Item.ObjectDescriptor;
If MDesc.ClassId = MetabaseObjectClass.KE_CLASS_STDDIM Then
Args.PopupMenu := PopupMenu1;
Elseif MDesc.ClassId = MetabaseObjectClass.KE_CLASS_CLNDIM Then
Args.PopupMenu := PopupMenu2;
End If;
End Sub MetabaseListView1OnGetItemPopup;
Во время работы формы, если для табличных или календарных справочников вызывается контекстное меню, то будут отображены те меню, которые сформированы в компонентах «PopupMenu1» и «PopupMenu2» соответственно.
См. также: