IMetabaseCustomClass.ClassId

Синтаксис

ClassId: Integer;

Описание

Свойство ClassId возвращает идентификатор класса.

Пример

Для выполнения примера предполагается наличие в репозитории объекта-ресурсы с идентификатором «OBJ_RES». В файловой системе должны присутствовать две пиктограммы: «C:\Icon_small.ico» и «C:\Icon_large.ico».

Sub Main;

Var

Mb: IMetabase;

Object: IMetabaseObject;

CustomClassExtender: IMetabaseCustomExtender;

CustClasses: IMetabaseCustomClasses;

CustomClass: IMetabaseCustomClass;

Operations: IMetabaseCustomClassOperations;

Operation: IMetabaseCustomClassOperation;

CreateInfo: IMetabaseObjectCreateInfo;

Description: IMetabaseObjectDescriptor;

ImgList: IGxImageList;

ImgList32: IGxImageList;

Icon: IGxIcon;

CustomObject: IMetabaseCustomObject;

Begin

Mb := MetabaseClass.Active;

// Создание контейнера пользовательских классов

CreateInfo := Mb.CreateCreateInfo;

CreateInfo.ClassId := MetabaseObjectClass.KE_CLASS_CUSTOM_EXTENDER;

CreateInfo.Name := "CUSTOM_EXTENDER";

CreateInfo.Permanent := True;

CreateInfo.Parent := Mb.Root;

Description := Mb.CreateObject(CreateInfo);

Object := Description.Edit;

CustomClassExtender := Object As IMetabaseCustomExtender;

ImgList := New GxImageList.Create;

ImgList.Height := 16;

Icon := New GxIcon.CreateFromFile("C:\Icon_small.ico");

ImgList.AddIcon(Icon);

CustomClassExtender.SmallImages := ImgList;

ImgList32 := New GxImageList.Create;

ImgList32.Height := 32;

Icon := New GxIcon.CreateFromFile("C:\Icon_large.ico");

ImgList32.AddIcon(Icon);

CustomClassExtender.LargeImages := ImgList32;

CustomClassExtender.IsShared := True;

CustomClassExtender.Resource := Mb.ItemById("OBJ_RES").Bind As IResourceObject;

CustomClassExtender.NameResource := "ID_CUSTOM_EXTENDER";

 

// Добавление пользовательского класса в контейнер

CustClasses := CustomClassExtender.Classes;

CustomClass := CustClasses.Add;

CustomClass.Description := "Собственный класс";

CustomClass.ImageIndex := 0;

Operations := CustomClass.Operations;

Operation := Operations.Add(0);

Operation.Name := "Новый метод";

Object.Save;

 

// Создание объекта пользовательского класса

CreateInfo.ClassId := CustomClass.ClassId;

CreateInfo.Name := "Объект собственного класса";

CreateInfo.Permanent := True;

CreateInfo.Parent := Mb.Root;

Description := Mb.CreateObject(CreateInfo);

Object := Description.Edit;

CustomObject := Object As IMetabaseCustomObject;

CustomObject.Extender := CustomClassExtender;

CustomObject.CustomClass := CustomClass;

Object.Save;

End Sub Main;

После выполнения примера будет создан контейнер пользовательских классов, содержащий один класс. В репозитории будет создан объект данного класса.

См. также:

IMetabaseCustomClass