GetMetabaseObjectClass(ClassId: Integer): MetabaseObjectClass;
ClassId - числовой идентификатор класса.
Метод GetMetabaseObjectClass возвращает класс объекта, реализуемый перечислимым типом MetabaseObjectClass, по числовому значению идентификатора класса.
Данный метод используется, если необходимо работать с классом объекта как с объектом типа MetabaseObjectClass, но доступен только числовой идентификатор класса, например, как в случае с пользовательскими классами.
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1» и компонента MetabaseOpenDialog с наименованием «MetabaseOpenDialog1». В контейнере пользовательских классов объекта созданы классы с идентификаторами «MyClass1» и «MyClass2».
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
MB: IMetabase;
CustExtender: IMetabaseCustomExtender;
Classes: IMetabaseCustomClasses;
ClassFilter1, ClassFilter2: IMetabaseDialogClassFilter;
CombiFilter: IMetabaseDialogCombiFilter;
Begin
MB := MetabaseClass.Active;
//Получаем контейнер пользовательских классов
CustExtender := MB.SpecialObject(MetabaseSpecialObject.CustomExtender).Bind As IMetabaseCustomExtender;
//Получаем список пользовательских классов
Classes := CustExtender.Classes;
//Создаем фильтры по классам объектов
ClassFilter1 := New MetabaseDialogClassFilter.Create;
ClassFilter2 := New MetabaseDialogClassFilter.Create;
//Комбинированный фильтр
CombiFilter := New MetabaseDialogCombiFilter.Create;
//Установка классов фильтруемых объектов
ClassFilter1.ObjectClass :=
MetabaseClass.GetMetabaseObjectClass(Classes.FindById("MyClass1").ClassId);
ClassFilter2.ObjectClass :=
MetabaseClass.GetMetabaseObjectClass(Classes.FindById("MyClass2").ClassId);
//Объединение в комбинированный фильтр
CombiFilter.Filters.AddFilter(ClassFilter1);
CombiFilter.Filters.AddFilter(ClassFilter2);
//Подключение фильтра в компоненте
MetabaseOpenDialog1.Filters.AddFilter(CombiFilter);
MetabaseOpenDialog1.Execute(Self);
End Sub Button1OnClick;
После выполнения примера при нажатии на кнопку для компонента «MetabaseOpenDialog1» будет установлен комбинированный фильтр по классам объектов. Комбинированный фильтр включает в себя два фильтра по пользовательским классам объектов. Для указания пользовательского класса в фильтре используется метод GetMetabaseObjectClass. После инициализации диалога для выбора будут доступны только объекты указанных пользовательских классов.
См. также: