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
Удаляет расширение