Логотип сайта поддержки пользователей САПРО сайте поддержки пользователей САПР Translate to:

AutoCAD 2000 и Visual LISP. Самоучитель
Купить книгу
Глава из книги "AutoCAD 2004:
разработка приложений и адаптация"
Н.Н. Полещука.
На домашнюю страницу автора

Пример (индикатор длительного процесса)

Отсутствие документации на функции, перечисленные в табл 2.6, не остановит пытливого исследователя. Названия большей части этих функций отражают их назначение.

Приведем пример использования функций acet-ui-progress-init, acet-ui-progress-safe и acet-ui-progress-done, которые позволяют создать в LISP-программе индикатор длительного процесса. Индикатор располагается в статусной строке. Недостатком применения неофициальных функций, конечно, может явиться то, что ваше приложение оказывается привязанным к Express Tools 2004 и может не работать в следующей версии системы AutoCAD.

Листинг 2.1. Индикатор процесса
(acet-ui-progress-init "Длительный процесс" 7000) 

(setq i 0) 

(repeat 7000 

  (setq i (1+ i)) 

  (acet-ui-progress-safe i) 

) 

(acet-ui-progress-done)

Комментарий к программе, приведенной в листинге 2.1: Функция acet-ui-progress-init выполняет инициализацию индикатора, выводя в статусную строку текст, заданный в качестве первого аргумента (рис. 2.1), и формируя верхнюю границу внутреннего счетчика длительного процесса (в примере — 7000). В бегущей строке самого же индикатора будут отражаться изменения в целых процентах (от 0% до 100%).


Рис. 2.1. Начальное состояние индикатора

Цикл построен на изменении переменной i от 0 до 7000. Программа передает индикатору текущее значение i с помощью выражения (acet-ui-progress-safe i), которое изменяет состояние статусной строки (рис. 2.2), пересчитывая значение в проценты.


Рис. 2.2. Промежуточное состояние индикатора

Выражение (acet-ui-progress-done) возвращает статусной строке обычный вид (со счетчиком координат и кнопками режимов).



Copyright © Сайт поддержки пользователей САПР by Victor Tkachenko