Группы пользователей Autodesk

         

Загрузка нужного диалогового окна в память


Создание проекта и добавление элементов интерфейса

 

Создание проекта и добавление элементов интерфейса 
 

Загрузка нужного диалогового окна в память



Ранее было отмечено, что отдельный DCL-файл может содержать описания нескольких диалоговых окон. В таком случае необходимо указать, какое именно из диалоговых окон требуется. Это иллюстрируется в следующем фрагменте кода:

(if (and dialogLoaded

(not (new_dialog "gp_mainDialog" dcl_id))

) ;_ end of and

(progn

;; There's a problem...

(princ "\nCannot show dialog gp_mainDialog")

(setq dialogShow nil)

) ;_ end of progn

) ;_ end of if

Обратим внимание на то, как используется функция and для проверки, загружено ли диалоговое окно и был ли успешно выполнен вызов new_dialog. При наличии внутри одной функции and нескольких выражений, вычисление прекращается после того, как результатом какого-либо из последовательных выражений станет nil. Например, если переменной dialogLoaded присвоено значение nil (что означает, что при выполнении функции загрузки произошла ошибка), VLISP не пытается выполнить функцию new_dialog.

Следует отметить, что в коде также учитывается возможность наличия неверных элементов в файле DCL. В этом случае переменной dialogShow присваивается значение nil.

Функция new_dialog загружает диалоговое окно в память, но не отображает его. Для вывода диалогового окна на экран используется функция start_dialog. Остальные этапы инициализации диалогового окна (присвоение значений элементам окна, создание изображений и списков, а также задание действий для элементов окна), должны производится после вызова new_dialog, но перед вызовом start_dialog.

 



Содержание раздела