4. Классы и расширения

ObjCreateClass

Name,Uname,BasedOn,Symmetric,DelType,Resident,FolderLike,MaxCnt

Создает класс в системе

Если класс базируется на другом, то несмотря на его флаги реальные (действующие) флаги могут быть другими. Взведенные значения флагов Symmetric,Resident,FolderLike заставляют все производные от них классы обладать тем же свойством. Значение DelType наследуется похоже, по максимальному. Значение MaxCnt наследуется по минимуму, но значение 0 означает бесконечность.

Пример: есть класс A(DelType=1). Создан на нем класс B с DelType=0. Но так как у A DelType=1, то и у B этот признак есть, хотя желаемый 0: A(1,жел1)a B(1, жел0). Теперь создан класс C(жел1), и ситакция такова: A(1,жел1)a B(1, жел0)a C(1,жел1). Теперь у класса A признак DelCopy сбрасывается. Класс B также теряет этот признак, а у C он сохраняется: A(0,жел0)a B(0, жел0)a C(1,жел1).

При создании класса в системной папке Классы производится отражение сложившейся иерархии классов, которую можно просмотреть.

ObjDropClass

Name

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

ObjEditClass

Name,BasedOn,Symmetric,DelType,Resident,FolderLike,MaxCnt

Производит изменение характеристик класса, в частности его флагов. После изменения производится по необходимости коррекция флагов производных классов

ObjCreateExt

Name,ExtName,ValueType,IsList,ValueSpec

Процедура создает расширение, то есть автоматически обслуживаемое в операциях просмотра и редактирования дополнительное поле для объекта.

Расширения автоматически появляются при просмотре объекта методами view и viewext и редактируются по методам edit и editext. Для других методов чтобы они появились, это надо заказать (макрос EnableExt) а для четырех указанных методов можно запретить (DisableExt)

ObjEditExt

Name,ExtName,ValueSpec

Редактирует спецификацию у существующего расширения

ObjDropExt

Name,ExtName

Удаляет расширение