Программирование диалоговых окон на языке DCL
Функции для работы со списками
Функция start_list
Функция start_list начинает операцию редактирования списка в элементах list_box и popup_list. Синтаксис функции:
(start_list <код>[<операция> [<номер>]])
Аргументы:
- <код> - код элемента, список которого редактируется;
-
<операция> - целое число, обозначающее тип операции:
- 1 - изменить выбранные элементы;
- 2 - добавить новые элементы;
- 3 - удалить старый список и создать новый;
- <номер> - номер элемента, начиная с которого вносятся изменения (операция=1);
По умолчанию для второго аргумента действующее значение равно 3, а для третьего аргумента - равно 0. Аргументы в списке нумеруются, начиная с нуля.
Возвращаемое значение - код элемента
Вызов функции start_list является отметкой начала операции формирования или редактирования списка. Вызов функции end_list является отметкой окончания операции. Изменения вносятся с помощью функции add_list и других функций, расположенных между start_list и end_list. Здесь нельзя использовать функцию set_tile.
Примеры:
- (start_list "kr2") - указывает начало операции формирования заново списка для элемента диалога с кодом "kr2";
- (start_list "kr2" 2) - указывает начало операции добавления новых элементов списка для элемента диалога с кодом "kr2";
- (start_list "kr2" 1 14) - указывает начало операции замены элементов списка, начиная с 14, для элемента диалога с кодом "kr2".
Функция add_list
Функция add_list выполняет операцию редактирования списка в элементах list_box и popup_list. Синтаксис функции:
(add_list <строка>)
Аргументы <строка> - строка, которая добавляется к списку или заменяет элемент списка. Возвращаемое значение - значение аргумента <строка>, если операция выполнена успешно. В случае сбоя возвращается nil.
Тип операции (изменение или добавление) определяется предшествующим вызовом функции start_list.
Пример: (add_list "Деталь 3217-06")
Функция end_list
Функция end_list завершает операцию редактирования списка в элементах list_box и popup_list. Синтаксис функции:
(end_list)
Возвращаемое значение nil.
Функции для работы с графическими элементами
Элементы image и image_button являются графическими полями с прямоугольной зоной. Зона может быть заполнена
- одним цветом;
- слайдом;
- отрезками разных цветов.
Открывает процесс заполнения функция start_image, а завершает процесс заполнения функция end_image. Между ними располагаются функции fill_image, slide_image, vector_image. Не допускается применять функцию set_tile. При указании координат в графическом окне предполагается, что левый верхний угол графического элемента находится в начале координат. Координаты правого нижнего угла могут быть получены с помощью функций dimx_tile и dimy_tile.
Функция start_image
Функция start_image открывает процесс заполнения графического элемента. Синтаксис:
(start_image <код>)
Аргумент <код> - значение атрибута key графического элемента. Возвращаемое значение - строка со значением аргумента, если операция выполнена успешно. В случае сбоя возвращается nil.
Функция end_image
Функция end_image завершает процесс формирования изображения. Синтаксис:
(end_image)
Возвращаемое значение - nil.
Вызову функции end_image должен обязательно предшествовать вызов функции start_image.
Функция fill_image
Функция fill_image заполняет прямоугольник внутри графического элемента одним цветом. Синтаксис:
(fill_image <x1> <y1> <ширина> <высота> <цвет>)
Аргументы:
- <x1> <y1> - координаты верхнего левого угла заполняемого прямоугольника;
- <ширина> <высота> - размеры заполняемого прямоугольника;
- <цвет> - индекс цвета.
Возвращаемое значение - значение аргумента <цвет>.
Пример: (fill_image 5 6 15 25 1) - заполняет красным (1) цветом прямоугольник с левым верхним углом в точке (5,6) и нижним правым углом в точке (15,25).
Функция slide_image
Функция slide_image заполняет графический элемент слайдом из отдельного SLD-файла или из библиотеки слайдов. Синтаксис:
(slide_image <x1> <y1> <ширина> <высота> <слайд>)
Аргументы <x1> <y1> <ширина> <высота> аналогичны таковым для функции fill_image. Аргумент <слайд> - строка с именем файла слайда (расширение .sld не указывается) или с именем библиотеки слайдов (имя слайда из библиотеки указывается в круглых скобках).
Возвращаемое значение - строка со значением аргумента <слайд>.
Примеры:
(slide_image 0 0 50 32 "ring1") - заполняет графический элемент размером 50х30 слайдом из файла ring1.sld.
(slide_image 0 0 50 32 "lib23(nut8)") - заполняет графический элемент размером 50х30 слайдом nut8 из библиотеки слайдов lib23.
Функция vector_image
Функция vector_image рисует отрезок заданного цвета внутри графического элемента диалогового окна. Синтаксис:
(vector_image <x1> <y1> <x2> <y2> <цвет>)
Аргументы:
- <x1>, <y1> - координаты (в пикселях) начала отрезка;
- <x2>, <y2> - координаты (в пикселях) конца отрезка;
- <цвет> - индекс цвета
Пример:
(vector_image 5 11 33 11 2) - рисует отрезок желтого цвета из точки (5,11) в точку (33, 11).