Переключение страниц
Процесс переключения страниц закладок обрабатывается несколькими событиями - проверка и изменение. Событие проверка вызывается ДО непосредственного переключения страниц. Это событие в зависимости от некотрых условий запрещает или позволяет осуществить переход на другую страницу. Отсутствие обработчика проверка аналогично тому, что этот обработчик возвращает значение ДА - то есть переключение страниц.
Событие изменение вызывается в момент переключения страниц закладок. В этом обработчике можно одномоментно сделать страницу видимой и заполнить ее.
В качетсве примера рассматривается случай, где при незаполненных графах ввода на страницах не происходит их переключение.
Пример
ТИП Страница(ДИАЛОГ)[ ПОДМЕНА ширина = 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[] ), проверка = {Заперт_перехода} ]; ФУНКЦИЯ ЛОГИКА: Заперт_перехода(ПЕРЕМ ЗАКЛАДКИ: элемент; ПЕРЕМ ЭЛЕМЕНТ: страница) РЕЗУЛЬТАТ = Страница(элемент.страницы[элемент.выбор]).Проверка КОНЕЦ_ФУНКЦИИ ] ВЫЧИСЛИТЬ ПЕРЕМ Диалог_дин_доб_заклд: д // д <- данные ЕСЛИ д.ПОКАЗАТЬ_МОДАЛЬНЫЙ <> "" ТО // д -> данные КОНЕЦ_ЕСЛИ КОНЕЦ