Лабораторный практикум «Автоматизация работ в AutoCAD средствами Visual Basic for Applications» для студентов «Механизация сельского хозяйства» |
Добавил(а) Administrator |
25.01.11 13:57 |
Страница 2 из 17
Рис.1. Объектная модель Microsoft Excel
Рис.2. Объектная модель AutoCAD. (коллекции представлены в прямоугольниках со скругленными краями)
Некоторые объекты являются частью других объектов, существуют объекты, принадлежащие нескольким коллекциям. Например блок (Block) – член коллекции Bloks, а также коллекции ModelSpace, если в пространстве модели есть ссылка на этот блок. Практически во всех управляющих программах VBA используют объект форма (Form), а также объекты - элементы управления: поле (Textbox), кнопка (CommandButton), поле со списком (ComboBox), флажок (Checkbox) и др.
Элементы управления могут размещаться в формах (например, привычные для пользователя формы открытия или сохранения файла содержат поля для ввода имени файла, поле со списком для задания имени папки, кнопки “открыть/сохранить” или “отмена”). Возможно размещение элементов управления в других объектах, например, на листах Excel
Таким образом, конкретный документ, таблица, чертеж или форма сами представляют собой объекты, принадлежащие программам-приложениям, и содержат в себе различные объекты: листы, ячейки, линии, слои, блоки, кнопки, поля ввода и проч. Каждый объект представляет собой программу, при этом два одинаковых объекта, например, линии на чертеже, представляю собой две реализации одной и той же программы с различными параметрами (данными). То есть построение линий на чертеже использует одну программу-шаблон, называемую “классом”. Классы. Каждое VBA-приложение использует набор шаблонов для определения объектов, получивших наименование классов. Машинные коды, содержащие шаблоны для определения объектов программы-приложения, размещены в специальных файлах-библиотеках этого приложения или библиотеках типов приложения (файлах с расширением .TLB). Шаблон содержит описание класса, в котором специфицируются типы данных, которые содержит объект, определены его свойства, методы обращения к данным и их преобразования, события, на которые реагирует объект. Шаблон позволяет создать в VBA-приложении экземпляр класса или собственно объект. Каждый класс (classes) содержит список членов (members), в которые входят свойства (properties), методы (methods), события (events). Свойство – атрибут объекта класса, который можно прочитать и изменить, модифицировать (чтение-запись) или только прочитать (только для чтения). Свойства определяют вид объекта AutoCAD на поле чертежа: тип линии (linetype), цвет (color), слой (layer), координаты характерных точек объекта (координаты центра окружности), радиус окружности, видимость на чертеже (visible) и т.д. Метод – это программа (функция), описывающая операции, которые можно выполнять для преобразования объектов класса. Например, объект можно удалить (Erase), копировать (Copy), зеркально отобразить (Mirror), переместить (Move). Событие – это некоторое действие, которое “распознает” объект класса и может на него отреагировать. Реакцию программирует разработчик VBA-приложения. К событиям относятся: нажатие кнопки манипулятора мышь (Click), нажатие клавиши Enter (Enter), выход из окна (Exit), внесение изменений (AfterUpdate) и др. События относятся к классам элементов управления, но часто используются по отношению к классам документов (например, можно программировать обязательное сохранение файла при его закрытии, или сохранение файла на жестком диске при внесении нового данного в ячейку листа книги Excel).
Доступ к файлам-библиотекам VBA-приложение получает, благодаря специальной технологии ActiveX, поддерживаемой VBA. Интегрированная среда разработки VBA. Доступ к среде разработки VBA-приложений открывается непосредственно из программ-приложений (Microsoft Excel, AutoCAD 2000). Для начала работы в среде VBA следует выбрать команду меню: СервисМакросРедактор Visual Basic; ToolsMacroVisual Basic Editor, или нажать комбинацию клавиш <Alt+F11>. На рис.3 приведено окно редактора VBA Microsoft Excel.
|
Последнее обновление 07.02.11 15:20 |