IMetabaseCustomExtender.SmallImages

Syntax

SmallImages: IGxImageList;

Description

The SmallImages property determines a source of small icons for classes objects that contain in a container.

Example

Executing the example requires that the repository contains a resources object with the OBJ_RES identifier. There must be two icons: C:\Icon_small.ico and C:\Icon_large.ico in the file system.

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;

// Creation of the custom classes container

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";

 

// Add custom class into a container

CustClasses := CustomClassExtender.Classes;

CustomClass := CustClasses.Add;

CustomClass.Description := "Own class";

CustomClass.ImageIndex := 0;

Operations := CustomClass.Operations;

Operation := Operations.Add(0);

Operation.Name := "New method";

Object.Save;

 

// Creation of the custom class object

CreateInfo.ClassId := CustomClass.ClassId;

CreateInfo.Name := "An object of its own class";

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;

After executing the example the custom classes container that contains one class is created. An object of this class is created in the repository. The C:\Icon_large.ico file is a source of a large icon, the C:\Icon_small.ico file - of a small icon.

See also:

IMetabaseCustomExtender