Видимость и доступность группы элементов
Элементы управления, добавленные группой на форму, сохраняют свои значения видимости и доступности. Доступностью и видимостью всей группы на форме можно управлять. Управление доступностью и видимостью осуществляется при помощи методов ДОСТУП_ГРУППЫ и ПОКАЗАТЬ_ГРУППУ.
Стоит отметить, что эти методы не управляют видимостью и доступность членов группы. Доступность и видимость члена группы обеспечивается одновременным сочетанием доступности/видимости отдельного члена группы и всей группы в целом, причем доступ к признаку доступности/видимости группы из языка невозможен, поэтому применяются методы ДОСТУП_ГРУППЫ и ПОКАЗАТЬ_ГРУППУ, чтобы управлять состоянием всей группы.
При добавлении группы элементов на форму группа всегда видима и доступна.
Для управления видимостью и доступностью члена группы используется стандартный способ через поля видимый и доступный. После изменения значений в этих полях для отображения всех изменений параметров членов группы элементов на форме вызывается метод ОБНОВИТЬ_ГРУППУ, который аналогичен методу ОБНОВИТЬ.
Пример
Пример иллюстрирует управление доступностью группы элементов и ее членов. В диалог добавляется группа элементов, которая определена в другом типе. При добавлении группы устанавливаем запрет на доступ к группе. При заполнении графы ввода открывается доступ к группе элементов, но так как первоначально первая графа ввода в группе элементов была с запретом на доступ, то нужно напрямую изменить поле доступный у этого члена элемента группы.
ТИП Диалог_вставка(ДИАЛОГ)
[
ПОДМЕНА ширина = 210;
ПОДМЕНА высота = 175;
КНОПКА: Кнопка1 = [ левый = 80,
верхний = 130,
ширина = 50,
высота = 25,
табиндекс = 3,
текст = "Кнопка1" ];
РЕДАКТОР: Редактор2 = [ левый = 25,
верхний = 85,
ширина = 150,
высота = 20,
табиндекс = 2,
доступный = ДА ];
РЕДАКТОР: Редактор1 = [ левый = 25,
верхний = 20,
ширина = 150,
высота = 55,
табиндекс = 1,
доступный = НЕТ ];
]
ПЕРЕМ Диалог_вставка: д_вст;
ТИП Диалог(ДИАЛОГ)
[
ПОДМЕНА ширина = 350;
ПОДМЕНА высота = 300;
ПОДМЕНА открытие = {Вставка_группы};
КНОПКА: КнопкаОК = [ левый = 89,
верхний = 270,
ширина = 80,
высота = 25,
табиндекс = 1001,
текст = "ОК",
нажатие = {НажатаОК} ];
КНОПКА: КнопкаОтмена = [ левый = 182,
верхний = 270,
ширина = 80,
высота = 25,
табиндекс = 1002,
текст = "Отмена",
нажатие = {НажатаОтмена} ];
РЕДАКТОР: Редактор1 = [ левый = 25,
верхний = 20,
ширина = 255,
высота = 20,
табиндекс = 1003,
изменение = {код_изменение} ];
ФУНКЦИЯ код_изменение(ПЕРЕМ РЕДАКТОР: ред);
ФУНКЦИЯ НажатаОК(ПЕРЕМ КНОПКА: кнопка)
ЗАКРЫТЬ("ОК")
КОНЕЦ_ФУНКЦИИ
ФУНКЦИЯ НажатаОтмена(ПЕРЕМ КНОПКА: кнопка)
ЗАКРЫТЬ("")
КОНЕЦ_ФУНКЦИИ
ФУНКЦИЯ Вставка_группы;
]
ФУНКЦИЯ Диалог.код_изменение(ПЕРЕМ РЕДАКТОР: ред)
ЕСЛИ ред.текст <> "" ТО
//разрешение доступа ко всей группе
ДОСТУП_ГРУППЫ(д_вст, ДА)
//разрешение доступа к члену группы
д_вст.Редактор1.доступный = ДА
//синхронизация изменений в поле члена группы с параметрами физ.объекта
ОБНОВИТЬ_ГРУППУ(д_вст)
КОНЕЦ_ЕСЛИ
КОНЕЦ_ФУНКЦИИ
ФУНКЦИЯ Диалог.Вставка_группы
//добавляем группу на форму, доступ к группе разрешен
ДОБАВИТЬ_ГРУППУ(10, 10, д_вст)
//запрещаем доступ к группе
ДОСТУП_ГРУППЫ(д_вст, НЕТ)
КОНЕЦ_ФУНКЦИИ
ВЫЧИСЛИТЬ
ПЕРЕМ Диалог: д
// д <- данные
ЕСЛИ д.ПОКАЗАТЬ_МОДАЛЬНЫЙ <> "" ТО
// д -> данные
КОНЕЦ_ЕСЛИ
КОНЕЦ