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
   56   57   58   59   60   61   62   63   64   65   66