Учебные материалы по математике | Создание динамических библиотек на основе классов в visual basic | Matematiku5
Вузы по математике Готовые работы по математике Как писать работы по математике Примеры решения задач по математике Решить задачу по математике online

Создание динамических библиотек на основе классов в visual basic


4. Классы. Интерфейс классов. Создание динамических библиотек на основе классов в Visual Basic. Регистрация библиотек.

Класс используется для задания структуры объекта. Это своего рода шаблон, на основе которого будут созданы объекты. Для ими­тации поведения реальных объектов в классах должны быть пред­ставлены принципы действия (методы) и данные объектов (свойства).

Чтобы создать модуль класса, следует воспользоваться командой ProjectAdd Class Module. В отрывшемся диалоге Add Class Module на закладке New выбрать шаблон Class Module (для создания пустого окна модуля класса и заполнения его самостоятельно пользователем) или шаблон VB Class Builder (для запуска мастера классов, рис.85). Мастер классов может быть установлен в виде команды меню VB (Add—InsClass Builder Utility), если предварительно загрузить утили­ту VB6 Class Builder Utility в память, используя диалог Add—In… Manager, открывающийся командой Add—InsAdd—In…Manager. Для редактирования существующих классов используется любой из двух последних способов.

Находясь в диалоге Class Builder с помощью команды FileNew Class следует задать имя класса в поле Name, а в списке Base on – имя класса родителя (принцип наследования). После чего появится возможность создавать свойства (Property), методы (Method), события (Event) и структуры целочисленных кон­стант (Enum). Кроме классов мастер может создавать семейства (Collection).

При создании свойств VB использует процедуры свойств (Property), которые во многом похожи на общие процедуры (Sub) и функции (Function). Чтобы они были видимы в пределах контейнера, их сле­дует объявить как Public.

Вы уже знаете, что значе­ния свойств можно как счи­тывать, так и устанавливать, поэтому для одного свойства требуется две процедуры с одним и тем же именем: одна для чтения, другая для записи значения в свойство. Для этого в заголовке процедур Property используются ключевые слова Let (присвоить) и Get (получить). Разделение процедур свойств на процедуры присваивания и процеду­ры считывания позволяет создавать свойства, доступные только для чтения или только для изменения (принцип инкапсуляции). Мастер классов (Class Builder) позволяет добавлять свойства к существую­щему классу с помощью команды FileNewProperty (рис.86) или кнопки . В этом окне следует задать имя, тип данных и доступ­ность свойств. Если будет установлена одна из опций Public Property или Friend Property, то мастер, после выполнения команды File Update Project, добавит в модуль класса три процедуры Property (Let, Get и Set), а также внутреннюю переменную для хранения зна­чения свойства. Например, окно класса после создания свойства с именем CurX типа Variant будет содержать следующий код.

Private mvarCurX As Variant ‘local copy

Public Property Let CurX(ByVal vData As Variant)

‘Syntax: X. CurX = 5

mvarCurX = vData ‘Обновить значение временной переменной

End Property

Public Property Set CurX(ByVal vData As Variant)

‘Syntax: Set x. CurX = Form1

Set mvarCurX = vData

End Property

Public Property Get CurX() As Variant

‘Syntax: Debug. Print X. CurX

If IsObject(mvarCurX) Then

Set CurX = mvarCurX

Else

CurX = mvarCurX ‘Обновить свойство CurX

End If

End Property

Здесь объявлена локальная переменная mvarCurX в стиле Венгерской нотации. Процедура Property Get по синтаксису является функцией, поскольку возвращает результат в имени, при этом она имеет тот же тип данных, что и параметр, в процедуре Property Let. Существует еще и процедура Property Set, аналогичная Property Let, только она передает не значение свойства, а ссылку на объект. Здесь перед оператором присваивания явно указывается ключевое слово Set (для ссылок на объект, находящихся как на форме, так и за ее пределами).

Если для какого-либо свойства Вы определили один из следующих типов данных: Object, StdFont, StdPicture, то Мастер классов создаст две процедуры свойств Set и Get. Если же тип данных у свойства будет числовой, логический или дата, то – две процедуры свойств Let и Get. И лишь когда тип данных у свойства будет Variant, Мастер классов создаст все три процедуры.

При этом следует помнить, что свойства не должны вызывать никаких действий объекта, которые должны реализоваться в методах.

Методы используются для расширения функциональных возмож­ностей объекта и имеют синтаксис процедур и функций. С помощью команды FileNewMethod или кнопки Мастера классов можно добавить методы. Обычно они содержат больше программного кода, чем процедуры свойств, так как в них выполняется обработка данных. Сложные по структуре методы можно разделить и объявить каждую его часть как Private, то есть для внутреннего использования в классе и, тем самым, защитить весь код. Такое разделение отвечает принципу инкапсуляции методов ООП.

5. Способы объявления объектных переменных в Visual Basic.

Объектные классы дают возможность объявить специальный тип данных, который может поддерживать все традиционные элементы, с которыми уже знакомы программисты, работавшие в других объектно-ориентированных языках, то есть со свойствами, методами и событиями. С одной стороны, объектные классы Visual Basic напоминают модули кода. Допускается объявлять переменные уровня модуля и любое число общих процедур и функций. Можно даже объявить специальный тип процедур, называемый процедурой Property, который предлагает более мощный путь создания свойств класса. Главное различие между объектными классами и модулями кода лежит в способе их использования. Модуль кода просто позволяет комбинировать полезный код, константы и глобальные переменные в повторно используемых библиотеках. Когда вы добавляете модуль кода в проект Visual Basic, можно вызвать любую из его процедур и функций из любого другого модуля в проекте. При использовании объектного класса вы должны создать экземпляр этого класса. Затем установить или считать значения свойств, принадлежащих экземпляру класса, и использовать его процедуры и функции полностью независимо от всех остальных экземпляров этого же класса. Другими словами, объектный класс представляет собой некий суперпользовательский тип данных.

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

Контейнер(модуль класса или формы), в котором используется объект, должен содержать процедуры-события.

Существует два способа объявления имени объекта на основе класса и обращения к его методам и свойствам из приложения.

Первый способ основан на использовании ключевого слова New непосредственно при объявлении объектной переменной в строке Dim.

Например,

Dim mObject As New Class1’Class1 –имяклассапоумолчанию

Private Sub Command1_Click()‘Процедура-событие

mObject. свойство=значение’Обращение к свойству

mObject.метод‘Обращение к методу

…………

Set mObject=Nothing’Удалить ссылку на объект и

‘освободить память, выделенную под объект

End Sub

Вторым способом объект создается с помощью строки Dim и оператора присваивания с ключевым словом Set.

В операторе присваивания указывается ключевое слово New или функция CreateObject с именем класса.

Например,

Dim mObject As Class1

Set mObject= New Class1

‘или Set mObject= CreateObject(»Class1»)

………………

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

Если в программе используются события объекта, а не только методы и свойства, как в представленном выше фрагменте кода, то объект следует создавать с использованием ключевого слова WithEvents

Его особенностью является то, что оно не может использоваться совместно с ключевым словом New. Однако именно последнее слово обеспечивает доступ к объекту и событиям объекта из окна кода. Поэтому следует писать:

Dim WithEvents mObject As Class1

Private Sub Command1_Click()

SetmObject= New Class1

‘или Set mObject= CreateObject(»Class1»)

mObject. свойство=значение

mObject.Метод

…………

SetmObject=Nothing’Удаление ссылки на объект

End Sub

Private Sub mObject_ИмяСобытия()

<Код, реализующий событие объекта mObject>

End Sub

6. Раннее и позднее связывание с объектом. Примеры.

Скорость выполнения приложения во многом зависит от того, каким образом VB осуществляет связывание объектной переменной с объектом. Существует раннее и позднее связывание.

Наташа

Автор

Наташа — контент-маркетолог и блогер, но все это не мешает ей оставаться адекватным человеком. Верит во все цвета радуги и не верит в теорию всемирного заговора. Увлекается «нефрохиромантией» и тайно мечтает воссоздать дома Александрийскую библиотеку.

Распродажа дипломных

 Скидка 30% по промокоду Diplom2020