Инструкция CLASS
Инструкция CLASS - создание нового пользовательского класса.
Синтаксис
CLASS ABSTRACT name [caption] [imageSetting] [: parent1, ..., parentN];
CLASS [NATIVE] name [caption] [imageSetting]
[{
objectName1 [objectCaption1] [imageSetting],
...
objectNameM [objectCaptionM] [imageSetting]
}]
[: parent1, ..., parentN];
Где imageSetting принимает один из видов:
IMAGE [imageLiteral]
NOIMAGE
Описание
Инструкция CLASS объявляет новый класс и добавляет его в текущий модуль.
Инструкция бывает двух видов: CLASS ABSTRACT для объявления абстрактного класса и просто CLASS для объявления обычного класса. Во втором случае при объявлении класса можно объявить статические объекты этого класса, имена и заголовки которых указываются в ограниченном фигурными скобками блоке.
Ключевое слово NATIVE используется в некоторых системных модулях. Оно предназначено для объявления отдельных системных классов, которые создаются до инициализации модулей.
Параметры
-
nameИмя класса. Простой идентификатор. Имя должно быть уникально в пределах текущего пространства имен.
-
captionЗаголовок класса. Строковый литерал. Если заголовок не задан, то заголовком класса будет являться его имя.
-
imageSettingНастройка иконки класса (если указана после заголовка класса) или статического объекта (если указана после заголовка объекта). Один из вариантов:
-
IMAGEУказание иконки вручную, после которого может следовать
imageLiteral— строковый литерал, значение которого определяет иконку. ЕслиimageLiteralне указан, происходит переключение в режим автоматической установки иконки. -
NOIMAGEУ класса или статического объекта не должно быть иконки.
-
-
objectName1, ..., objectNameMИмена статических объектов данного класса. Каждое имя задается простым идентификатором. Имя каждого статического объекта доступно через свойство
name[StaticObject]. -
objectCaption1, ..., objectCaptionMЗаголовки статических объектов данного класса. Каждый заголовок является строковым литералом. Если заголовок не задан, то заголовком статического объекта будет являться его имя. Заголовок каждого статического объекта доступен через свойство
caption[StaticObject]. -
parent1, ..., parentNСписок имен родительских классов. Каждое имя задается составным идентификатором. Если список родительских классов не задан, то класс наследуется от класса
System.Object.
Примеры
CLASS ABSTRACT Document; // Заголовком этого класса будет 'Document'
CLASS IncomeDocument 'Приход' : Document;
CLASS OutcomeDocument 'Расход' : Document;
CLASS Person;
CLASS Worker;
CLASS Musician : Person, Worker; // множественное наследование
CLASS Barcode 'Штрих-код'; // Родительским классом Barcode будет класс System.Object
CLASS PrintOrientation {
portrait 'Книжная',
landscape 'Альбомная'
}
CLASS Currency 'Валюта' IMAGE 'currency.png'; // класс с иконкой