Макет формы

Для корректного отображения формы в различных графических режимах используется макет формы. Для этого у формы должен быть реквизит «ДоступныеЭлементыФормы» с произвольным типом. Стандартный реквизит формы «Исп. только видимую область» должен быть установлен в значение ложь. В событии ПриОткрытии для отрисовки формы по макету нужно выполнить код:

ДоступныеЭлементыФормы = РасположитьЭлементыНаФорму(ЭтаФорма);

Получение текста макеты выполняется функцией

Функция ПолучитьМакетФормы() Экспорт

в модуле формы.
Узел первого уровня «Форма».
Узел второго уровня - «Режим». Узел описывает для конкретного граф. режима. Атрибуты:

Атрибут	Описание	Обязательный
НомерРежима	0 - 640×480, расширенный; 1 - 640х480, нерасширенный; 2 - 800х600, расширенный; 3 - 800х600, нерасширенный; 4 - 1024х768, расширенный; 5 - 1024х768, нерасширенный	да
Подложка	Имя элемента справочника картинки	Нет
Ширина	Ширина формы	да, если не указан атрибут Подложка
Высота	Высота формы	да, если не указан атрибут Подложка

В макете адаптивного интерфейса атрибут НомерРежима не указывается, первый узел Режим используется для расширенного режима, второй для нерасширенного. Числовые атрибуты указываются в долях единицы. Например, Ширина=«0.50» в адаптивном интерфейса означает, что ширина формы или элементы будет иметь размером в половину экрана. Лево=«0.1» - отступ 10% от ширина экрана.

Узел третьего уровня - элемент формы. Атрибуты:

Атрибут	Описание	Обязательный
Лево	Лево	Нет
Верх	Верх	Нет
Ширина	Ширина	Нет
ФункцияКод	Код раскладки клавиатуры для нажатия данной кнопки	Нет
КнопкаКод	Код кнопки	Нет
ШрифтРазмер	Размер шрифта	Нет
ДоступноНажатие	истина - если это кнопка	Нет
Динамический	истина - если элемента нет на форме, ложь - элемент уже есть на форме	Нет
Видимость	Видимость элемента	Нет
Залипаемая	Залипаемая кнопка	Нет

Пример макета для неадаптивного интерфейса:

<?xml version="1.0" encoding="windows-1251" ?>
<Форма>
<Режим НомерРежима = "0" Подложка="пл_ВыборОтложенногоЧека">
<СписокЧеков Лево="17" Верх="15" Ширина="346" Высота="281" ШрифтРазмер="10" ДоступноНажатие="ложь" Динамический="ложь"/>
<СтрелкаВверх Лево="382" Верх="224" КнопкаКод="66" ФункцияКод="18" ДоступноНажатие="истина" Динамический="истина"/>
<СтрелкаВниз Лево="382" Верх="260" КнопкаКод="67" ФункцияКод="19" ДоступноНажатие="истина" Динамический="истина"/>
<Ввод Лево="382" Верх="150" КнопкаКод="64" ФункцияКод="12" ДоступноНажатие="истина" Динамический="истина"/>
<Выход Лево="382" Верх="15" КнопкаКод="84" ФункцияКод="11" ДоступноНажатие="истина" Динамический="истина"/>
</Режим>
<Режим НомерРежима = "1" Подложка="пл_ВыборОтложенногоЧека">
<СписокЧеков Лево="17" Верх="15" Ширина="346" Высота="281" ШрифтРазмер="10" ДоступноНажатие="ложь" Динамический="ложь"/>
</Режим>
<Режим НомерРежима = "2" Подложка="пл_ВыборОтложенногоЧека">
<СписокЧеков Лево="17" Верх="15" Ширина="346" Высота="281" ШрифтРазмер="10" ДоступноНажатие="ложь" Динамический="ложь"/>
<СтрелкаВверх Лево="382" Верх="224" КнопкаКод="66" ФункцияКод="18" ДоступноНажатие="истина" Динамический="истина"/>
<СтрелкаВниз Лево="382" Верх="260" КнопкаКод="67" ФункцияКод="19" ДоступноНажатие="истина" Динамический="истина"/>
<Ввод Лево="382" Верх="150" КнопкаКод="64" ФункцияКод="12" ДоступноНажатие="истина" Динамический="истина"/>
<Выход Лево="382" Верх="15" КнопкаКод="84" ФункцияКод="11" ДоступноНажатие="истина" Динамический="истина"/>
</Режим>
<Режим НомерРежима = "3" Подложка="пл_ВыборОтложенногоЧека">
<СписокЧеков Лево="22" Верх="19" Ширина="443" Высота="360" ШрифтРазмер="13" ДоступноНажатие="ложь" Динамический="ложь"/>
</Режим>
<Режим НомерРежима = "4" Подложка="пл_ВыборОтложенногоЧека">
<СписокЧеков Лево="22" Верх="19" Ширина="443" Высота="360" ШрифтРазмер="13" ДоступноНажатие="ложь" Динамический="ложь"/>
<СтрелкаВверх Лево="489" Верх="289" КнопкаКод="66" ФункцияКод="18" ДоступноНажатие="истина" Динамический="истина"/>
<СтрелкаВниз Лево="489" Верх="332" КнопкаКод="67" ФункцияКод="19" ДоступноНажатие="истина" Динамический="истина"/>
<Ввод Лево="489" Верх="192" КнопкаКод="64" ФункцияКод="12" ДоступноНажатие="истина" Динамический="истина"/>
<Выход Лево="489" Верх="19" КнопкаКод="84" ФункцияКод="11" ДоступноНажатие="истина" Динамический="истина"/>
</Режим>
<Режим НомерРежима = "5" Подложка="пл_ВыборОтложенногоЧека">
<СписокЧеков Лево="22" Верх="19" Ширина="443" Высота="360" ШрифтРазмер="13" ДоступноНажатие="ложь" Динамический="ложь"/>
</Режим>
</Форма>

Пример макета для адаптивного интерфейса:

<?xml version="1.0" encoding="windows-1251" ?>
<Форма>
<Режим Ширина = "0.7" Высота = "0.4">
<СписокЧеков Ширина="0.7" Высота="0.9" Лево="0.025" Верх="0.05" ШрифтРазмер = "0.04" ДоступноНажатие="ложь" Динамический="ложь"/>
<СтрелкаВверх Заголовок = "˄" Ширина="0.2" Высота="0.1" Лево="0.765" Верх="0.73" ШрифтРазмер = "0.5" Цвет = "Б" ФункцияКод="18" ДоступноНажатие="истина" Динамический="истина"/>
<СтрелкаВниз Заголовок = "˅" Ширина="0.2" Высота="0.1" Лево="0.765" Верх="0.85" ШрифтРазмер = "0.5" Цвет = "Б" ФункцияКод="19" ДоступноНажатие="истина" Динамический="истина"/>
<Ввод Заголовок = "Ввод" Ширина="0.2" Высота="0.15" Лево="0.765" Верх="0.5" ШрифтРазмер = "0.3" Цвет = "К" ФункцияКод="12" ДоступноНажатие="истина" Динамический="истина"/>
<Выход Заголовок = "Отмена" Ширина="0.2" Высота="0.15" Лево="0.765" Верх="0.05" ШрифтРазмер = "0.3" Цвет = "Б" ФункцияКод="11" ДоступноНажатие="истина" Динамический="истина"/>
</Режим>
<Режим Ширина = "0.5" Высота = "0.4">
<СписокЧеков Ширина="0.95" Высота="0.9" Лево="0.025" Верх="0.05" ШрифтРазмер = "0.04" ДоступноНажатие="ложь" Динамический="ложь"/>
</Режим>
</Форма>