Опубликован: 21.02.2012 | Доступ: свободный | Студентов: 2061 / 499 | Оценка: 4.20 / 4.40 | Длительность: 19:35:00
Специальности: Разработчик аппаратуры
Лекция 6:

Программирование диалоговых окон на языке 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).

Алексей Тимонин
Алексей Тимонин
Алексей Потапкин
Алексей Потапкин

Здравствуйте.

Подскажите, пожалуйста, каким образом можно передать параметры в макрос написанный в Autocad на VBA? Например, есть процедура, которая отрисовывает заштрихованный прямоугольник (см. ниже). Как её изменить, чтобы на входе от пользователя требовалось ввести также в качестве параметров координаты углов прямоугольника?

Public Sub DrawHatchedBox()

...

End Sub