Переключение страниц
Процесс переключения страниц закладок обрабатывается несколькими событиями - проверка и изменение. Событие проверка вызывается ДО непосредственного переключения страниц. Это событие в зависимости от некотрых условий запрещает или позволяет осуществить переход на другую страницу. Отсутствие обработчика проверка аналогично тому, что этот обработчик возвращает значение ДА - то есть переключение страниц.
Событие изменение вызывается в момент переключения страниц закладок. В этом обработчике можно одномоментно сделать страницу видимой и заполнить ее.
В качетсве примера рассматривается случай, где при незаполненных графах ввода на страницах не происходит их переключение.
Пример
ТИП Страница(ДИАЛОГ)[
ПОДМЕНА ширина = 380;
ПОДМЕНА высота = 270;
ПОДМЕНА табиндекс = 2;
РЕДАКТОР: Редактор1 = [ левый = 20,
верхний = 130,
ширина = 175,
высота = 70,
табиндекс = 1 ];
ФУНКЦИЯ ЛОГИКА: Проверка
ЕСЛИ Редактор1.текст = "" ТО
РЕЗУЛЬТАТ = НЕТ
ИНАЧЕ
РЕЗУЛЬТАТ = ДА
КОНЕЦ_ЕСЛИ
КОНЕЦ_ФУНКЦИИ
]
ТИП Страница2(Страница)
[
ПОДМЕНА заголовок = "Страница2";
ВВОД_ЦЕЛОГО: Ввод_целого1 = [ левый = 20,
верхний = 180,
ширина = 175,
высота = 35,
табиндекс = 2 ];
ФУНКЦИЯ ЛОГИКА: Проверка
ЕСЛИ Ввод_целого1.значение = 0 ТО
РЕЗУЛЬТАТ = НЕТ
ИНАЧЕ
РЕЗУЛЬТАТ=ДА
КОНЕЦ_ЕСЛИ
КОНЕЦ_ФУНКЦИИ
]
ТИП Страница1(Страница)
[
ПОДМЕНА заголовок = "Страница1";
ТЕКСТ: Текст1 = [ левый = 15,
верхний = 20,
ширина = 250,
высота = 80,
текст = "Добавьте элементы управления на страницу 1...",
гор_выравн = ГВ_ЦЕНТР ];
]
ТИП Диалог_дин_доб_заклд(ДИАЛОГ)
[
ЗАКЛАДКИ: Закладки1 = [ левый = 45,
верхний = 30,
ширина = 335,
высота = 265,
табиндекс = 1003,
закладки = ( "1",
"2"),
страницы = ( Страница1[],
Страница2[] ),
проверка = {Заперт_перехода}
];
ФУНКЦИЯ ЛОГИКА: Заперт_перехода(ПЕРЕМ ЗАКЛАДКИ: элемент; ПЕРЕМ ЭЛЕМЕНТ: страница)
РЕЗУЛЬТАТ = Страница(элемент.страницы[элемент.выбор]).Проверка
КОНЕЦ_ФУНКЦИИ
]
ВЫЧИСЛИТЬ
ПЕРЕМ Диалог_дин_доб_заклд: д
// д <- данные
ЕСЛИ д.ПОКАЗАТЬ_МОДАЛЬНЫЙ <> "" ТО
// д -> данные
КОНЕЦ_ЕСЛИ
КОНЕЦ