Resource: IResourceObject;
Свойство Resource определяет ресурс репозитория, в котором будут храниться метаданные пользовательского класса.
По умолчанию свойство не определено, при этом метаданные пользовательского класса хранятся в контейнере пользовательских классов. Если для класса определить ресурс, то в нём будут сохранятся наименование и описание класса, крупный и маленький значок. Для определения значков будут использоваться свойства LargeImage и SmallImage.
Для выполнения примера в репозитории предполагается наличие ресурса с идентификатором CLS_RESOURCES. В ресурсе сохранены изображения с идентификаторами LARGEICON и SMALLICON. Также в пользовательских метаданных репозитория создан класс с идентификатором 2889473.
Добавьте ссылки на системные сборки: Drawing, IO, Metabase.
Sub UserProc;
Var
Mb: IMetabase;
CustomClassExtender: IMetabaseCustomExtender;
CustomClass: IMetabaseCustomClass;
Resource: IResourceObject;
Begin
Mb := MetabaseClass.Active;
// Получение контейнера пользовательских классов
CustomClassExtender := Mb.SpecialObject(MetabaseSpecialObject.CustomExtender).Edit As IMetabaseCustomExtender;
Resource := Mb.ItemById("CLS_RESOURCES").Bind As IResourceObject;
// Изменение пользовательского класса
CustomClass := CustomClassExtender.Classes.FindByClassId(2889473);
CustomClass.Resource := Resource;
CustomClass.LargeImage := New GxBitmap.CreateFromStream(Resource.Binaries.Value("LARGEICON"));
CustomClass.SmallImage := New GxBitmap.CreateFromStream(Resource.Binaries.Value("SMALLICON"));
// Сохранение изменений
(CustomClassExtender As IMetabaseObject).Save;
End Sub UserProc;
При выполнении примера для указанного пользовательского класса будет определён ресурс для хранения метаданных. Изображения из ресурса будут установлены в качестве значков для пользовательского класса.
См. также: