Инструкция DESIGN
Инструкция DESIGN
- изменение дизайна формы.
Синтаксис
Синтаксис представляет собой вложенные друг в друга блоки инструкций дизайна. Внешний блок, начинающийся с ключевого слова DESIGN
, определяет форму, дизайн которой будет изменяться:
DESIGN formName [caption] [CUSTOM] {
designStatement1
...
designStatementN
}
Каждый designStatement
описывает одну инструкцию дизайна. Инструкции дизайна бывают следующих типов:
NEW name [insertPos] [{...}];
MOVE selector [insertPos] [{...}];
selector [{...}];
REMOVE selector;
propertyName = value;
Первые три инструкции: создание (NEW
), перемещение (MOVE
) и редактирование могут в свою очередь содержать вложенные блоки инструкций дизайна. Инструкции дизайна удаление (REMOVE
) и изменение значения свойства (=
) являются простыми одиночными инструкциями. Каждая инструкция дизайна должна завершаться точкой с запятой, если в ней не содержится вложенный блок инструкций.
Каждый selector
может быть одного из следующих типов:
componentName
PROPERTY(formPropertyName)
FILTERGROUP(filterGroupName)
PARENT(selector)
GROUP([propertyGroupSelector][,groupObjectTreeSelector])
noGroupObjectTreeContainerType
groupObjectTreeContainerType(groupObjectTreeSelector)
В свою очередь, groupObjectTreeSelector
может быть одного из двух видов:
groupObjectSelector
TREE treeSelector
Описание
При помощи инструкции DESIGN
разработчик может управлять дизайном интерактивного представления формы путем создания, перемещения и удаления контейнеров и компонент, а также задания им определенных свойств. По умолчанию для каждой формы создается дизайн по умолчанию вместе с соответствующими контейнерами. При необходимости можно пересо здать дизайн без созданных по умолчанию контейнеров и выполненных ранее настроек. Осуществляется это с помощью ключевого слова CUSTOM
.
Каждый блок инструкций дизайна, заключенный в фигурные скобки, позволяет изменять некоторый компонент и его потомков, будем называть этот компонент текущим компонентом либо текущим контейнером, если нам известно, что компонент в данной ситуации должен являться контейнером. Во внешнем блоке, идущем после ключевого слова DESIGN
, текущим компонентом является контейнер main
. Существует следующие виды инструкций дизайна:
- Инструкция создания (
NEW
) позволяет создать новый контейнер, делая его потомком текущего контейнера. Текущим компонентом в блоке инструкций дизайна, содержащемся в этой инструкции, будет являться созданный контейнер. - Инструкция перемещения (
MOVE
) позволяет сделать некоторый существующий компонент непосредственным потомком текущего контейнера. Предварительно этот компонент удаляется из предыдущего родительского контейнера. Текущим компонентом в блоке инструкций дизайна, содержащемся в этой инструкции, будет являться перемещаемый компонент. - Инструкция редактирования позволяет изменить указанный компонент, который должен являться потомком (не обязательно непосредственным) текущего контейнера. Текущим компонентом в блоке инструкций дизайна, содержащемся в этой инструкции, будет являться указанный элемент.
- Инструкция удаления (
REMOVE
) позволяет удалить указанный компонент из иерархии компонентов. Удаляемый компонент должен являться потомком текущего контейнера. - Инструкция изменения значения свойства (
=
) позволяет изменить значение указанного свойства текущего компонента.
Иерархия компонент, описываемая в рамках одной инструкции, может иметь произвольный уровень вложенности и описывать любое количество компонентов и их свойств на каждом из уровней.
Для обращения к компонентам дизайна можно использовать их имя, а также обращаться к компонентам свойств на форме (PROPERTY
), родительскому компоненту (PARENT
), контейнерам групп свойств (GROUP
) и другим базовым компонентам / компонентам дизайна по умолчанию.
Параметры
Общие параметры
-
formName
Имя изменяемой формы. Составной идентификатор.
-
caption
Новый заголовок формы в интерактивном режиме отображения. Строковый литерал. В навигаторе заголовок формы при этом не изменяется.
-
name
Имя создаваемого контейнера. Простой идентификатор.
-
insertPos
Позиция вставки или перемещения компонента. Задается одним из следующих вариантов:
-
BEFORE
selector -
AFTER
selectorУказание того, что компонент должен быть добавлен или перенесен до (
BEFORE
) или после (AFTER
) указанного компонента. Указанный компонент должен быть непосредственным потомком текущего контейнера. -
FIRST
Ключевое слово, которое указывает на то, что компонент должен быть добавлен или перенесен на первое место в списке потомков текущего контейнера.
-
-
propertyName
Имя свойства компонента. Список существующих свойств перечислен в таблицах ниже.
-
value
Значение, присваиваемое соответствующему свойству контейнера. Допустимый тип значения можно посмотреть в таблицах ниже.
Свойства компонентов
Имя свойства | Описание | Вид значения | Значение по умолчанию | Примеры |
---|---|---|---|---|
span | todo | Целочисленный литерал | 1 | 2 |
defaultComponent | Указание того, что на данный компонент должен быть выставлен фокус при инициализации формы. Может быть установлен только для одного компонента на всей форме | Дополненный логический литерал | FALSE | TRUE FALSE |
activated | todo | Логический литерал | FALSE | TRUE FALSE |
fill | Аналогично свойству flex , но кроме того, если устанавливается нулевое значение, то свойство align устанавливается в START , иначе align устанавливается в STRETCH | Литерал типа NUMERIC | 0 | 1.5 |
size | Базовый размер компонента в пикселях (значение -1 означает, что размер не установлен) | Пара целочисленных литералов (ширина, высота) | (-1, -1) | (100, 20) |
height | Базовый размер компонента по высоте в пикселях. | Целочисленный литерал | -1 | 50 |
width | Базовый размер компонента по ширине в пикселях. | Целочисленный литерал | -1 | 20 |
flex | Коэффициент расширения. Значение свойства, аналогичного свойству CSS flex-grow. Задает насколько компонент должен расти в размерах относительно других компонентов | Литерал типа NUMERIC | 0 | 0.25 |
shrink | todo | Логический литерал | FALSE | TRUE FALSE |
alignShrink | todo | Логический литерал | FALSE | TRUE FALSE |
align alignment | Способ выравнивания компонента внутри контейнера. Допустимые значения: START (В начале), CENTER (В центре), END (В конце), STRETCH (Растянуть). | Тип выравнивания | START | STRETCH |
marginTop | Отступ сверху | Целочисленный литерал | 0 | 3 |
marginRight | Отступ справа | Целочисленный литерал | 0 | 1 |
marginBottom | Отступ снизу | Целочисленный литерал | 0 | 4 |
marginLeft | Отступ слева | Целочисленный литерал | 0 | 1 |
margin | Отступ. Устанавливает одинаковое значение свойствам marginTop , marginRight , marginBottom , marginLeft | Целочисленный литерал | 0 | 5 |
captionFont | Шрифт, который будет использоваться для отображения заголовка компонент а | Строковый литерал | зависит от компонента | 'Tahoma bold 16' 'Times 12' |
font | Шрифт, который будет использоваться для отображения текста компонента, например, значения свойства, заголовка действия, текста в таблице | Строковый литерал | зависит от компонента | 'Tahoma bold 16' 'Times 12' |
fontSize | Размер шрифта, который будет использоваться для отображения текста компонента | Числовой литерал | зависит от компонента | 10 |
fontStyle | Стиль шрифта, который будет использоваться для отображения текста компонента. Может содержать слова 'bold' и/или 'italic' , либо пустую строку | Строковый литерал | '' | 'bold' 'bold italic' |
background | Цвет, который будет использоваться для отображения фона компонента | Литерал класса COLOR | #FFFFFF | #FFFFCC RGB(255, 0, 0) |
foreground | Цвет, который будет использоваться для отображения текста компонента |