Среда разработки И++

Добавление пользовательского элемента на форму

Пользовательский элемент управления - это элемент управления, созданный путем наследования свойств основных типов элементов управления. Наследование может быть многоуровневым - один пользовательский элемент может быть потомком другого пользовательского элемента, который в свою очередь является потомков одного из основного типа элемента управления.

Перед непосредственным добавление пользовательского элемента на форму нужно чтобы в исходном коде файлов проекта было объявление потомка основного типа элемента управления. После объявления в исходном коде типа-потомка при помощи кнопки или через меню Форма-Элементы управления в диалоговом окне выбирается нужный тип пользовательского элемента управления. После нажатия кнопки "Ок" осуществляется переход в режим добавления элемента на форму - курсор устанавливается на нужную позицию в форме и, удерживая левую кнопку мыши, "растянуть" элемент до нужного размера. Кнопка активна только в случае, если в исходном тексте используемых в проекте файлов встречается хотя бы одно объявление объектного типа – потомка типа элемента управления:

ТИП <имя_типа>(<имя_родительского_типа>)
[
	<поля типа>
]

Пример:

При подключении библиотеки с приведенным ниже текстом появится возможность размещать на форме пользовательский элемент управления – таблицу, в которую можно добавлять коды и названия объектов аналитики, выбирая объекты из диалога.

ТИП МояТаблица(ТАБЛИЦА)
[
    ЦЕЛОЕ: кол_строк = 0;
    ЦЕЛОЕ: кол_столбцов = 2;
    ЦЕЛОЕ: кол_фикс_столбцов = 1;
    ЧИСЛО: размер_строки = 20;
    ЛОГИКА: стр_доб = ДА;
    ЧИСЛО: столбцы[] = ( 1: 21,
                         2: 136,
                         3: 263 );
    ЧИСЛО: строки[] = ( 1: 21,
                        2: 21,
                        3: 21 );
    *:элементы[ЦЕЛОЕ(), ЦЕЛОЕ()] = ( 2, 1: "Код",
                                     3, 1: "Название" );
    
    ПОДМЕНА команда = открыть_диалог; 
]

ФУНКЦИЯ ЛОГИКА: открыть_диалог(ПЕРЕМ ТАБЛИЦА: таблица; СТРОКА: код)
    ЕСЛИ код = "+" ТО
        ПЕРЕМ ДИАЛОГ_АНАЛИТ: длг_выбора
        длг_выбора.выбор_множ = ДА
        длг_выбора.выбор_посл = ДА
        длг_выбора.сост_парам[1] = [дерево=НЕТ]

        ЕСЛИ длг_выбора.ПОКАЗАТЬ ТО
            ЦИКЛ ИНДЕКС (знач = длг_выбора.выд_множ[инд])
                таблица.кол_строк++
                таблица.элементы[2, таблица.кол_строк + 1] = знач.код
                таблица.элементы[3, таблица.кол_строк + 1] = НАЗВ_ОБЪЕКТА(знач.код)
            КОНЕЦ_ЦИКЛА
            таблица.ОБНОВИТЬ
        КОНЕЦ_ЕСЛИ
    КОНЕЦ_ЕСЛИ
    РЕЗУЛЬТАТ = ДА
КОНЕЦ_ФУНКЦИИ

См. также: