Руководство разработчика

Переключение страниц

Процесс переключения страниц закладок обрабатывается несколькими событиями - проверка и изменение. Событие проверка вызывается ДО непосредственного переключения страниц. Это событие в зависимости от некотрых условий запрещает или позволяет осуществить переход на другую страницу. Отсутствие обработчика проверка аналогично тому, что этот обработчик возвращает значение ДА - то есть переключение страниц.

Событие изменение вызывается в момент переключения страниц закладок. В этом обработчике можно одномоментно сделать страницу видимой и заполнить ее.

В качетсве примера рассматривается случай, где при незаполненных графах ввода на страницах не происходит их переключение.

Пример

ТИП Страница(ДИАЛОГ)[
  ПОДМЕНА ширина = 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[] ),
                          проверка = {Заперт_перехода} 
                          ];
  ФУНКЦИЯ ЛОГИКА: Заперт_перехода(ПЕРЕМ ЗАКЛАДКИ: элемент; ПЕРЕМ ЭЛЕМЕНТ: страница)
    РЕЗУЛЬТАТ = Страница(элемент.страницы[элемент.выбор]).Проверка
  КОНЕЦ_ФУНКЦИИ
]

ВЫЧИСЛИТЬ
  ПЕРЕМ Диалог_дин_доб_заклд: д
  // д <- данные
  ЕСЛИ д.ПОКАЗАТЬ_МОДАЛЬНЫЙ <> "" ТО
    // д -> данные
  КОНЕЦ_ЕСЛИ
КОНЕЦ

См. также: