Page 60 - AutoLISP и Visual LISP в среде AutoCAD
P. 60
3.5. ФУНКЦИИ AUTOLISP ДЛЯ РАБОТЫ С ДИАЛОГОВЫМИ ОКНАМИ
(load_dialog имя_файла)
Функция открывает DCL-файл и возвращает его уникальный
дескриптор, необходимый для дальнейшей работы с диалогом. Параметр
имя_файла – строка, содержащая имя DCL-файла (можно без расширения).
Пример:
(setq id (load_dialog "new.dcl")) ; Сохранить дескриптор файла
; с диалогом в переменной id
(unload_dialog id)
Закрывает DCL-файл и освобождает дескриптор с ним связанный.
Всегда возвращает nil. Параметр id – дескриптор, возвращенный функцией
load_dialog.
(new_dialog имя_диалога id [[действие] точка])
Отображает диалоговое окно на экране, инициализирует выражения
действия, приписанные стандартным кнопкам подтверждения и отмены, а
также элементам управления, у которых задан атрибут action. При успешном
отображении диалога функция возвращает T, в противном случае – nil.
Параметры: имя_диалога – строка, содержащая имя диалогового окна; id –
дескриптор, возвращенный функцией load_dialog; действие – строка,
содержащая выражение AutoLisp, которое необходимо выполнить в момент
выбора элемента управления по умолчанию, т.е. имеющего атрибут
is_default=true (чаще всего, это кнопка подтверждения); точка – список (X
Y), определяющий точку положения левого верхнего угла диалогового окна.
Если параметр точка задан как список (-1 -1), то диалоговое окно
отображается в центре графического экрана AutoCad.
Если требуется аргумент точка, а аргумент действие определять не
нужно, то аргументу действие необходимо присвоить пустую строку. При
задании действия внутри new_dialog, важно учесть, что, чаще всего, при
выборе элемента по умолчанию диалог заканчивается, следовательно,
аргумент действие, в данном случае, должен содержать вызов функции
закрытия диалога (done_dialog).
Пример:
(new_dialog "dialog1" id) ; отобразить диалог с именем "dialog1"
(done_dialog [код_завершения])
Завершает диалог и убирает диалоговое окно с экрана. Функция
возвращает в виде списка (X Y) положение диалогового окна в момент его
закрытия. Параметры: код_завершения – необязательный аргумент,
представляющий целое положительное число, информирующее приложение
о причине закрытия диалогового окна.
59