назад | содержание | вперед

Глава 15. Создание собственных классов.

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

Основные понятия ООП

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

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

Объект

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

Класс

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

Если объекты существуют в приложениях, то класс — это абстракция, объединяющая объекты в одну группу согласно их свойствам и поведению в среде окружения, в которой они существуют и взаимодействуют. Класс, таким образом, является некоей абстракцией, так как он не существует в работающем приложении.

Например, кнопка в форме со всеми своими конкретными свойствами и действием является объектом класса commandButton.

Свойства класса

Класс является носителем общих для объектов этого класса признаков. Класс характеризуется следующими основополагающими понятиями ООП.

Методы класса

Методы класса — это выполняемые классом функциональные "обязанности", задаваемые при его проектировании. Практически они представляют собой процедуры и функции, которые реализуют все функциональные требования к объектам класса и, соответственно, к классу, как описанию объектов.

События класса

События — это сообщения, при помощи которых класс управляется и реагирует на воздействия внешней среды. Все события определяются в классе при его проектировании. В дальнейшем при использовании объектов этого класса они будут воспринимать и генерировать соответствующие классу события. Классам присущи разнообразные события и они, конечно, различны для каждого класса, однако в Visual Basic 6 имеются два специальных события, которые присущи всем классам. Это события создания и уничтожения (прекращения работы) объектов класса:

Свойства объекта

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

Понятие коллекции объектов

Коллекция — это набор объектов, объединенных общим именем, причем не обязательно это объекты одного класса. Для типовых пользовательских объектов характерны (и обычно присутствуют при создании коллекции без специального их объявления) следующие свойства и методы:

Примером коллекций могут служить встроенные в Visual Basic 6 коллекции, в числе которых Forms и controls. Forms — это множество загруженных форм приложения, Controls — это множество всех элементов управления в форме.

На практике для объявления пользовательской коллекции применяется тип данных collection. Для пользовательских коллекции указанные выше методы и свойство создаются автоматически. Например, следующий код создает новую коллекцию:

Dim MyCollection As New Collection

Замечание

Для организации цикла по элементам коллекции служит конструкция For Each ... Next.

Создание собственных классов

Для создания классов используются команды Add Class Module (Добавить модуль класса) или Add User Control (Добавить пользовательский элемент управления), если это класс элементов управления, меню Project (Проект). Для изучения возможностей создания классов создадим класс подразделений некой фирмы со следующими атрибутами:

Для создания такого класса выполните следующие действия:

1. Создайте новый проект типа Standard EXE и назовите его MyClass при помощи страницы свойств проекта, вызываемой командой Project1 Properties меню Project (Проект).

2. Форму приложения Fonn1, создаваемую в проекте автоматически, переименуйте В frmMyClass.

3. Командой Add Class Module меню Project (Проект) добавьте в проект новый модуль класса. В окне проводника проекта появится группа Class Modules.

4. Используя свойство Name окна Properties (Свойства), вызываемого командой Properties Window (Окно свойств) меню View (Вид), присвойте классу

ИМЯ cIsDepartment (рис. 15.1).

5. Теперь, чтобы определить объект данного класса, необходимо в окне редактора формы или модуля ввести следующий код:

Dim objDep As New cIsDepartment

или

Dim objDep As Object

Set objDep = New cIsDepartment

Рис: 15.1. Проект MyClass с вновь созданным классом cIsDepartment

Добавление свойств класса

Для добавления свойств в созданный модуль класса можно воспользоваться глобальными переменными или процедурами установки и чтения свойств. Сначала рассмотрим добавление свойств с помощью глобальных переменных. Введите в модуль класса текст кода, указанный ниже:

' Свойства объектов класса

Public nDepCode As Integer

Public nDepParentCode As Integer

Public sDepName As String

Public sDepManager As String

Public nSalary As Currency

Public nAddSalary As Currency

Для проверки работы свойств объекта класса cIsDepartment необходимо установить значения этих свойств с помощью указанного ниже кода. Сделать это можно в любом требуемом месте приложения. В данном случае выполним это при загрузке формы в память, то есть по событию Load формы frmMyClass Приложения MyClass:

Private Sub Form_Load()

objDep.nDepCode = 12

objDep.nDepParentCode = 1

objDep.sDepName = "Общий отдел"

objDep.sDepManager = "Петров Иван Иванович"

objDep.nSalary = 1200

objDep.nAddSalary = 12

End Sub

Для просмотра свойств объекта добавьте в форму frmMyClass кнопку типа commandButton и для размещения надписи кнопки введите Сведения об обьекте. Наименование кнопки можно не менять. Форма примет вид, показанный на рис. 15.2. Затем добавьте для этой кнопки следующий код:

Private Sub Commandl_Click()

sSayAboutObj = "Код подразделения: " + Str(objDep.nDepCode) + Chr(lO)

sSayAboutObj = sSayAboutObj + "Наименование подразделения: " + objDep.sDepName + Chr(lO)

sSayAboutObj = sSayAboutObj + "Руководитель: " + objDep.sDepManager

'Вывод в окно сообщения

MsgBox sSayAboutObj,, "Сведения об объекте"

End Sub

Рис. 15.2. Форма для проверки свойств объекта класса с Is Department

При загрузке формы назначаются свойства объекта, которые затем можно посмотреть с помощью кнопки формы.

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

Добавим, например, в класс сlsDepartment свойство InAddress, описывающее внутренний адрес подразделения (например, номер помещения) внутри фирмы.

Для добавления нового свойства можно использовать диалоговое окно ввода членов класса Add Procedure (Добавить процедуру), показанное на рис. 15.3. Оно вызывается командой Add Procedure (Добавить процедуру) меню Tools (Сервис) при работе в редакторе кода модуля. Напомним, что члены класса — это свойства, методы и события, присущие классу.

Для ввода необходимого свойства следует вписать его имя в поле Name (Имя) диалогового окна Add Procedure и установить опцию Property (Свойство) в группе переключателей Type (Тип). Данное окно автоматически добавляет в код модуля шаблоны функций property Get и property Let с заданным наименованием свойства.

Рис. 15.3. Диалоговое окно Add Procedure для ввода членов класса

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

' Свойства объектов класса

Public nDepCode As Integer

Public nDepParentCode As Integer

Public sDepName As String

Public sDepManager As String

Public nSalary As Currency

Public nAddSalary As Currency

' Переменная для хранения значения нового свойства

Private sInAddress

' Определение нового свойства

Public Property Get InAddressO As String

InAddress = sInAddress End Property

Public Property Let InAddress(ByVal sNewValue As String)

sInAddress = sNewValue End Property

Если модифицировать код, выполняемый при нажатии кнопки, следующим образом:

Private Sub Commandl_Click()

sSayAboutObj = "Код подразделения: " + Str(objDep.nDepCode) + Chr(10)

sSayAboutObj = sSayAboutObj + "Наименование подразделения: " + objDep.sDepName + Chr(10)

sSayAboutObj = sSayAboutObj + "Руководитель: " + objDep.sDepManager + Chr(10)

' Добавленное свойство

sSayAboutObj = sSayAboutObj + "Размещается: " + objDep.InAddress

'Вывод в окно сообщения

MsgBox sSayAboutObj,, "Сведения об объекте"

End Sub

то будет возвращаться и значение нового свойства, определяющего место размещения подразделения.

Добавление методов в класс

Добавление метода в класс осуществляется гораздо проще. Фактически необходимо просто объявить функцию или процедуру типа public в классе. Практически метод добавляется с помощью диалогового окна Add Procedure (Добавить процедуру), которое показано на рис. 15.3. При этом переключатель Type (Тип) необходимо установить в положение Sub (Процедура) или Function (Функция), а переключатель Score (Область видимости) в положение Public.

Замечание

Напомним, что диалоговое окно Add Procedure вызывается командой Add Procedure меню Tools (Сервис) при открытом редакторе кода. При помощи Add Procedure в текст модуля добавляется только шаблон метода, который затем необходимо программировать вручную.

В качестве примера добавим в класс с is Department метод SayAboutDep, возвращающий информацию о подразделении. Для этого, используя диалоговое окно Add Procedure, введем в модуль класса следующий код:

Public Function SayAboutDep() As String

' Вывод общей информации об объекте

SayAboutDep = sDepName + ". Руководитель: " + sDepManager

End Function

Для проверки работы метода в событие click кнопки Commandl приложения Myciass вместо строки:

MsgBox sSayAboutObj,, "Сведения об объекте"

введите следующую строку;

MsgBox objDep.SayAboutDep(),, "Сведения об объекте"

Теперь при нажатии на кнопку Сведения об объекте метод SayAboutDep возвращает общую информацию об объекте.

Добавление событий в класс

Для добавления в класс события также необходимо воспользоваться диалоговым окном Add Procedure (рис. 15.3). При этом переключатель Type (Тип) нужно установить в положение Event (Событие), а переключатель Score (Область видимости) в положение Public.

Рассмотрим такой пример. Добавим в класс cisDepartment событие initciass, при возникновении которого все свойства класса будут устанавливаться в требуемое состояние. Для этого с помощью диалогового окна Add Procedure добавьте в модуль класса определение события и введите следующий код:

' Новое событие

Public Event InitClass ()

' Процедура инициализации класса

Public Sub SetInitClass ()

RaiseEvent InitClass

End Sub

Для инициализации события в Visual Basic 6 есть специальный оператор RaiseEvent, который в данном случае работает в процедуре инициализации класса.

Для работы с этим событием необходимо немного доработать приложение Myciass. Выполните следующие действия:

1. Добавьте в форму еще одну кнопку типа commandButton и, используя свойство caption, разместите на ней надпись Установить свойства. Вид формы показан на рис. 15.4.

Рис. 15.4. форма для проверки события InitClass

2. Модифицируйте код приложения, чтобы он принял следующий вид:

Dim WithEvents objDep As cisDepartment

Private Sub Commandl Click()

sSayAboutObj = "Код подразделения: " + Str(objDep.nDepCode) + Chr(10)

sSayAboutObj = sSayAboutObj + "Наименование подразделения: " + objDep.sDepName + Chr(10)

sSayAboutObj = sSayAboutObj + "Руководитель: " + objDep.sDepManager + Chr(10)

' Добавленное свойство

sSayAboutObj = sSayAboutObj + "Размещается: " + objDep.InAddress

'Вывод в окно сообщения

MsgBox sSayAboutObj,, "Сведения об объекте"

MsgBox objDep.SayAboutDep (),, "Сведения об объекте"

End Sub

Private Sub Conimand2_Click ()

obj Dep.SetInitClass

End Sub

Private Sub Form Load()

Set objDep = New с Is Department

End Sub

Private Sub objDep_InitClass ()

obj Dep. nDepCode =12

objDep.nDepParentCode = 1

objDep.sDepName = "Общий отдел"

objDep.sDepManager ~= "Петров Иван Иванович"

objDep.nSalary = 1200

objDep.nAddSalary = 12

objDep.InAddress = "к.103"

End Sub

Для того чтобы события объекта были доступны в форме, необходимо объявлять его с использованием ключевого слова withEvents. Как только это слово включено в объявление объекта, он появляется в левом списке окна редактора кода, а соответствующие ему события будут доступны в правом списке. При этом несколько изменяется и само объявление объекта, то есть для этого служит оператор set.

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

Создание классов форм

Интересно, что с самого начала работы с Visual Basic 6 программист начинает создавать классы. И эти классы — это классы форм. Рассмотрим, как можно создавать и использовать данные классы форм.

Создание класса формы

Вначале займемся созданием класса формы. Выполните следующие действия:

1. Откройте новый проект типа Standard EXE.

2. Используя диалоговое окно свойств проекта, открываемое командой Projecti Properties меню Project, назовите проект classForms.

3. С помощью окна свойств Properties (Свойства), открываемого командой Properties Window меню View или командой Properties контекстного меню, переименуйте форму в frmFormcis.

4. Добавьте в форму элемент управления типа commandButtom, дважды щелкнув мышью кнопку CommandButtom на панели элементов управления. Можно не изменять имени кнопки, заданного по умолчанию. Используя свойство Caption, задайте название кнопки Создать новый объект.

Выполненный проект показан на рис. 15.5.

Рис. 15.5. Приложение для изучения класса форм

5. В окно редактора введите следующий код:

Private Sub Commandl_Click()

Dim FormNew As New frmFormCIs

FormNew.Show

End Sub

6. Запустите приложение на выполнение. При нажатии на размещенную в форме кнопку создаются объекты класса frmFormcis, то есть, проектируя форму, вы спроектировали целый класс форм.

При многократном вызове объектов этого класса создается коллекция объектов, и каждая форма при этом является членом коллекции. Для идентификации конкретного члена используется индекс членов коллекции, при помощи которого можно сослаться на любую форму из коллекции или получить управление конкретной формой. Для форм в Visual Basic 6 существует специальная коллекция Forms, при помощи которой можно адресоваться к конкретной форме. Чтобы изучить данное свойство коллекции форм, усовершенствуйте приложение следующим образом:

1. Добавьте в приложение еще один элемент управления типа commandButton и задайте наименование созданной кнопки Переход к объекту. Имя кнопки можно оставить заданным по умолчанию (рис. 15.6).

Рис. 15.6. Приложение для изучения адресации к объектам класса форм

2. Измените код приложения в соответствии с указанным ниже:

Dim frmCount As Integer

Dim frmCountMax As Integer

Private Sub Commandl_Click()

' Создание объекта

Dim FormNew As New frmFormCIs

FormNew.Show

frmCountMax = frmCountMax + 1

End Sub

Private Sub Command2_Click()

' Переход к объекту

Forms(frmCount).Caption = "Форма-объект " + Str(frmCount)

Forms(frmCount).Show

frmCount = frmCount + 1

If frmCount > frmCountMax Then frmCount = 0

End Sub

Private Sub Form Load()

frmCount = 0

frmCountMax = 0

End Sub

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

Для изучения возможности обращения к объектам формы экземпляра класса frmFormCis доработайте приложение следующим образом:

1. Добавьте в форму текстовое поле типа TextBox, дважды щелкнув мышью кнопку TextBox на панели элементов управления, и присвойте ей имя txtFormNum. Из свойства Text удалите текст, введенный по умолчанию.

2. Измените текст кода для объекта command2 на следующий:

Private Sub Coiroiand2_Click ()

' Переход к объекту

Forms(frmCount).Caption = "Форма-объект " + Str(frmCount)

Forms(frmCount).Show

' Адресация к объекту формы

Forms(frmCount).txtFormNum.Text = frmCount

frmCount = frmCount + 1

If frmCount > frmCountMax Then frmCount = 0

End Sub

В этом тексте продемонстрировано, как адресоваться к одному и тому же объекту в формах, которые являются экземплярами класса frmFormCis, с помощью установки значения свойства Text этого объекта. Как видите, при помощи такого описания классов форм можно создавать достаточно сложные формы и использовать их в качестве классов в последующих разработках.

Добавление свойств, методов, событий в класс формы

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

Добавление членов класса формы, то есть свойств, методов и событий, выполняется обычным способом, как это было сделано для класса подразделения.

Создание классов с помощью VB Class Builder

Для создания сложных классов или доработки уже имеющихся в среде Visual Basic 6 предусмотрено специальное инструментальное средство — построитель классов Class Builder.

Замечание

Построитель классов подключается к среде проектирования с помощью диспетчера надстроек командой Add-In Manager (Диспетчер надстроек) меню Add-Ins (Надстройки). В окне диспетчера Add-In Manager необходимо назначить загрузку построителя классов, установив флажок загрузки для значения VB6 Class Builder Utility.

Построитель классов

После присоединения построителя классов к среде проектирования, команда запуска построителя классов Class Builder (Построитель классов) появляется в меню Add-Ins. При работе над проектом построитель классов можно также вызвать с помощью значка VB Class Builder в диалоговом окне Add Class Module (рис. 15.7), которое открывается командой Add Class Module (Добавить модуль класса) меню Project (Проект).

Рис. 15.7. Диалоговое окно Add Class Module для запуска построителя классов

При запуске построителя классов открывается окно Class Builder (рис. 15.8) для проектирования классов, в котором выполняется вся работа по созданию или дополнению класса. Это окно состоит из четырех вкладок:

Рис. 15.8. Окно построителя классов Class Builder

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

Таблица 15.1. Кнопки окна построителя классов Class Builder

Кнопка

Название

Назначение

Add New Class

(Добавить новый класс)

Добавляет новый класс. Дублирует команду Class (Класс), появляющуюся при выборе в меню File (Файл) построителя команды New (Новое)

Add New Property to Current Class (Добавить новое свойство в текущий класс)

Добавляет новое свойство в класс. Дублирует команду Property (Свойство), появляющуюся при выборе в меню File (Файл) построителя команды New (Новое)

Add New Method to Current Class (Добавить новый метод в текущий класс)

Добавляет новый метод в класс. Дублирует команду Method (Метод), появляющуюся при выборе в меню File (Файл) построителя команды New (Новое)

Add New Event to Current Class (Добавить новое событие в текущий класс)

Добавляет новое событие в класс. Дублирует команду Event (Событие), появляющуюся при выборе в меню File (Файл) построителя команды New (Новое)

Show Properties for the Current Object (Показать свойства текущего объекта)

Показывает свойства текущего члена класса. Соответствует команде Properties (Свойства) меню Edit (Правка)

Cut (Вырезать)

Вырезает выделенное в буфер

Copy (Копировать)

Копирует выделенное из буфера

Paste (Вставить)

Вставляет информацию из буфера



Кроме этих кнопок, дублирующих команды меню, в меню построителя классов Class Builder есть одна важная команда, которая не продублирована кнопкой. Это команда Update Project (Внести изменения в проект). При выполнении данной команды внесенные в классы проекта изменения запоминаются для последующего сохранения в файлах классов.

Добавление нового класса

Рассмотрим, как проектируется класс с помощью построителя классов. Для добавления нового класса нажмите кнопку Add New Class на панели инструментов окна построителя или выберите в меню File (Файл) построителя значение New (Новое), а затем — Class (Класс). Открывается окно Class Module Builder (Построитель модулей классов) для ввода описания атрибутов класса (рис. 15.9). Это окно достаточно простое. В поле Name (Имя) окна необходимо ввести наименование нового класса и указать базовый класс, если новый класс строится на основании существующего. Если это не так, то из списка Based On выбирается значение New Class (Новый класс).

Рис. 15.9. Окно построителя модулей классов Class Module Builder

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

Добавление свойств класса

При работе со свойствами необходимо перейти на вкладку Properties (Свойства) построителя классов (рис. 15.8). При нажатии на кнопку добавления нового свойства Add New Property to Current Class открывается диалоговое окно Property Builder (Построитель свойств), показанное на рис. 15.10. Для добавления нового свойства необходимо в поле Name (Имя) этого окна ввести наименование свойства, выбрать тип переменной, которой соответствует свойство, назначить объявление свойства с помощью переключателя Declarations (Объявления).

Рис. 15.10. Окно построителя свойств классов Property Builder

Добавление методов класса

Чтобы добавить новый метод в класс, следует перейти на вкладку Methods (Методы) построителя классов (рис. 15.11).

Для проектирования методов необходимо открыть диалоговое окно Method Builder (Построитель методов) (рис. 15.12), предназначенное для работы с методами класса. Чтобы открыть это окно, следует нажать кнопку Add New Method to Current Class (Добавить новый метод в текущий класс) на панели окна или выбрать команду New (Новое) меню File (Файл), а затем значение Method (Метод).

Рис. 15.11. Вкладка Methods построителя классов Class Builder

Рис. 15.12. Окно Method Builder построителя методов

В диалоговом окне Method Builder можно в поле Name (Имя) ввести имя нового метода и добавить, при необходимости, аргументы метода в список Arguments (Аргументы). Для добавления или редактирования аргументов вызывается окно ввода аргументов Add Argument (Добавить аргумент), показанное на рис. 15.13. В этом окне в поле Name (Имя) следует ввести наименование аргумента, указать его тип, выбрав требуемое значение из списка Data Type (Тип данных), назначить ключевые слова ByVal, Array, optional описания метода, установив соответствующие флажки.

Рис. 15.13. Окно добавления аргументов в метод

Слева от списка в диалоговом окне Method Builder (Построитель методов) находятся кнопки управления аргументами. Они выполняют следующие действия:

Кнопка

Назначение

Открывает диалоговое окно Add Argument (Добавить аргумент), предназначенное для ввода нового аргумента метода

Удаляет аргумент

Перемещает аргумент в списке на позицию вверх

Перемещает аргумент в списке на позицию вниз


 

Добавление событий класса

Для работы с событиями класса необходимо перейти на вкладку Events (События) построителя, которая показана на рис. 15.14.

Для работы с событиями в построителе предназначено диалоговое окно Event Builder (Построитель событий) (рис. 15.15), которое открывается при нажатии кнопки Add New Event to Current Class (Добавить новое событие в текущий класс) на панели окна построителя. Для открытия этого окна можно также выбрать команду New (Новое) меню File (Файл), а затем значение Event (Событие).

Диалоговое окно построителя событий похоже на окно построителя методов. При необходимости можно добавить аргументы в событие с помощью окна Add Argument (Добавить аргумент), аналогичного окну добавления аргументов в метод.

Рис. 15.14. Вкладка Events построителя классов Class Builder

Рис. 15.15. Диалоговое окно построителя событий Event Builder

При необходимости можно работать сразу со всеми членами класса с помощью вкладки All (Все) построителя классов (рис. 15.16).

После завершения работы с классом его необходимо сохранить в файле с расширением els.

Полный текст полученного при помощи Class Builder класса приводить нет необходимости, поскольку он достаточно объемный. Следует заметить, что свойства вводятся не как глобальные переменные, а с помощью функций Property Get и Property Let. Для примера можно привести текст свойства AddSalary:

Private mvarAddSalary As Currency 'local copy

Public Property Let AddSalary(ByVal vData As Currency)

'used when assigning a value to the property, on the left side of an assignment.

'Syntax: X.AddSalary = 5

mvarAddSalary = vData

End Property

Public Property Get AddSalary () As Currency

'used when retrieving value of a property, on the right side of an assignment.

'Syntax: Debug.Print X.AddSalary

AddSalary = mvarAddSalary

End Property

Замечание

Необходимо отметить, что спроектированные при помощи построителя классов члены класса после завершения проектирования и сохранения класса уже недоступны в построителе для редактирования или удаления. Неудачно созданные и сохраненные члены класса удаляются непосредственно из кода модуля класса в редакторе кода.

Рис. 15.16. Вкладка АН построителя классов Class Builder

Созданные таким образом классы работают только в проекте, для которого они созданы. Однако подход ООП изобретен в том числе и для многократного использования кода, чем он и замечателен. Такую возможность предоставляет Visual Basic 6.

Класс как способ многократного использования кода

Как и компоненты ActiveX, класс служит для многократного использования кода. Однако в отличие от компонентов ActiveX, которые специально разрабатываются для применения во всех последующих приложениях, класс действует только в рамках данного проекта. Это ограничение можно устранить, подключив проект с интересующим классом к текущему проекту с помощью окна ссылок Reference. После того как проект подключен к разрабатываемому приложению, можно легко сослаться на класс, например, при создании объекта, следующим образом:

Dim NewObj As New MyClass.clsClass

Здесь MyClass — это проект, который содержит интересующий пользователя класс clsClass.

назад | содержание | вперед

Hosting uCoz