Page 61 - AutoLISP и Visual LISP в среде AutoCAD
P. 61
При выборе стандартных кнопок подтверждения и отмены, имеющих
значения атрибута key "accept" и "cancel" соответственно, вызов done_dialog
необязателен. Код завершения для кнопки "accept" – 1, а для кнопки "cancel"
– 0. Это не означает, что приложение не может определить свой код
завершения для стандартных кнопок (см. action_tile).
Пример:
(done_dialog 3) ; завершить диалог с кодом 3
(term_dialog)
Прерывает работу всех активных в настоящий момент диалоговых окон
и всегда возвращает nil. Данная функция не имеет аргументов и используется
в основном для закрытия вложенных диалоговых окон.
(start_dialog)
Начинает диалог с пользователем, в цикле обрабатывая произведенные
им действия. Диалоговое окно остается активным до тех пор, пока
результатом какого-либо выражения действия не станет вызов функции
закрытия диалога done_dialog или пользователь не нажмет на стандартные
клавиши подтверждения или отмены. Функция не имеет аргументов. Она
возвращает параметр код_завершения, переданный в функцию done_dialog.
Кроме того, start_dialog возвращает 1, если пользователь нажал на клавишу
подтверждения; 0 – при нажатии на клавишу отмена; -1, если окно было
закрыто вызовом функции прерывания диалога term_dialog.
(action_tile ключ выражение_действия)
Назначает действие, которое будет выполнено при выборе или
завершении работы пользователем с тем или иным элементом управления в
диалоговом окне. Данная функция не проверяет корректность параметров
(лишь следит за их типом) и всегда возвращает T. Параметр: ключ – строка,
обозначающая атрибут key элемента управления, при выборе которого
необходимо выполнить определенное действие; выражение_действия –
строка, содержащая выражение AutoLisp, которое необходимо выполнить в
момент выбора элемента управления, имеющего атрибут key=ключ.
Действие, назначенное функцией action_tile, замещает действия,
приписанные стандартным кнопкам подтверждения и отмены, действие по
умолчанию, назначенное функцией new_dialog, а также действия
приписанные элементам управления с помощью атрибута action.
Выражение действия, помещенное в качестве аргумента функции
action_tile или в атрибуте action элемента управления, может получать
доступ к внутренним переменным данного элемента управления,
описывающим его состояние. Имена этих переменных зарезервированы, и их
значения можно считать только внутри выражения действия:
$key – атрибут key выбранного элемента управления;
$value – строка с текущим значением данного элемента управления ("0"
или "1" для переключателя);
60