программирование, создание программ, учебник Delphi, учебник по программированию, бейсек, делфи, си, паскаль
 
 
 

 

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

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

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

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

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

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

  • Initialize — это событие возникает в момент создания (появления) нового объекта класса при работе приложения;
  • Terminate — это событие возникает в момент уничтожения объекта.

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

  • метод Add — добавляет объект в коллекцию;
  • метод Remove — исключает объект из коллекции;
  • свойство count — возвращает общее число объектов в коллекции;
  • метод item — возвращает объект из коллекции.

Примером коллекций могут служить встроенные в 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 ( 1).
5. Теперь, чтобы определить объект данного класса, необходимо в окне редактора формы или модуля ввести следующий код:
Dim objDep As New cIsDepartment
или
Dim objDep As Object
Set objDep = New 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 и для размещения надписи кнопки введите Сведения об обьекте. Наименование кнопки можно не менять. Форма примет вид, показанный на  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
При загрузке формы назначаются свойства объекта, которые затем можно посмотреть с помощью кнопки формы.
В нашем примере вы задавали свойства с помощью глобальных переменных. Однако для задания свойств можно использовать более гибкий и защищенный от внешней среды по отношению к классу вариант назначения свойств класса, то есть функции свойств:

  • property Let — устанавливает значение свойства;
  • property set — устанавливает значение свойства в случае, если оно (значение) является объектом;
  • property Get — возвращает значение свойства.

Добавим, например, в класс сlsDepartment свойство InAddress, описывающее внутренний адрес подразделения (например, номер помещения) внутри фирмы.
Для добавления нового свойства можно использовать диалоговое окно ввода членов класса Add Procedure (Добавить процедуру), показанное на  3. Оно вызывается командой Add Procedure (Добавить процедуру) меню Tools (Сервис) при работе в редакторе кода модуля. Напомним, что члены класса — это свойства, методы и события, присущие классу.
Для ввода необходимого свойства следует вписать его имя в поле Name (Имя) диалогового окна Add Procedure и установить опцию Property (Свойство) в группе переключателей Type (Тип). Данное окно автоматически добавляет в код модуля шаблоны функций property Get и property Let с заданным наименованием свойства.
Необходимо назначить переменную для хранения свойства, но это уже внутренняя переменная класса типа 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 (Добавить процедуру), которое показано на  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 ( 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, разместите на ней надпись Установить свойства. Вид формы показан на  4.
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, задайте название кнопки Создать новый объект.
Выполненный проект показан на  5.
5. В окно редактора введите следующий код:
Private Sub Commandl_Click()
Dim FormNew As New frmFormCIs
FormNew.Show
End Sub
6. Запустите приложение на выполнение. При нажатии на размещенную в форме кнопку создаются объекты класса frmFormcis, то есть, проектируя форму, вы спроектировали целый класс форм.
При многократном вызове объектов этого класса создается коллекция объектов, и каждая форма при этом является членом коллекции. Для идентификации конкретного члена используется индекс членов коллекции, при помощи которого можно сослаться на любую форму из коллекции или получить управление конкретной формой. Для форм в Visual Basic 6 существует специальная коллекция Forms, при помощи которой можно адресоваться к конкретной форме. Чтобы изучить данное свойство коллекции форм, усовершенствуйте приложение следующим образом:
1. Добавьте в приложение еще один элемент управления типа commandButton и задайте наименование созданной кнопки Переход к объекту. Имя кнопки можно оставить заданным по умолчанию ( 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 ( 7), которое открывается командой Add Class Module (Добавить модуль класса) меню Project (Проект).
При запуске построителя классов открывается окно Class Builder ( 8) для проектирования классов, в котором выполняется вся работа по созданию или дополнению класса. Это окно состоит из четырех вкладок:

  • Properties (Свойства) — вкладка для работы со свойствами;
  • Methods (Методы) — вкладка для работы с методами;
  • Events (События) — вкладка для работы с событиями;
  • All (Все) — вкладка, на которой представлены все члены класса. Построитель классов содержит собственное меню и панель инструментов с кнопками, назначение которых описано в табл. 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 (Построитель модулей классов) для ввода описания атрибутов класса ( 9). Это окно достаточно простое. В поле Name (Имя) окна необходимо ввести наименование нового класса и указать базовый класс, если новый класс строится на основании существующего. Если это не так, то из списка Based On выбирается значение New Class (Новый класс).
После того как модуль класса создан, работа над классом продолжается на вкладках построителя. При этом для каждого члена класса вызывается соответствующее окно проектирования.
Добавление свойств класса
При работе со свойствами необходимо перейти на вкладку Properties (Свойства) построителя классов ( 8). При нажатии на кнопку добавления нового свойства Add New Property to Current Class открывается диалоговое окно Property Builder (Построитель свойств), показанное на  10. Для добавления нового свойства необходимо в поле Name (Имя) этого окна ввести наименование свойства, выбрать тип переменной, которой соответствует свойство, назначить объявление свойства с помощью переключателя Declarations (Объявления).
Добавление методов класса
Чтобы добавить новый метод в класс, следует перейти на вкладку Methods (Методы) построителя классов ( 11).
Для проектирования методов необходимо открыть диалоговое окно Method Builder (Построитель методов) ( 12), предназначенное для работы с методами класса. Чтобы открыть это окно, следует нажать кнопку Add New Method to Current Class (Добавить новый метод в текущий класс) на панели окна или выбрать команду New (Новое) меню File (Файл), а затем значение Method (Метод).
В диалоговом окне Method Builder можно в поле Name (Имя) ввести имя нового метода и добавить, при необходимости, аргументы метода в список Arguments (Аргументы). Для добавления или редактирования аргументов вызывается окно ввода аргументов Add Argument (Добавить аргумент), показанное на  13. В этом окне в поле Name (Имя) следует ввести наименование аргумента, указать его тип, выбрав требуемое значение из списка Data Type (Тип данных), назначить ключевые слова ByVal, Array, optional описания метода, установив соответствующие флажки.
Слева от списка в диалоговом окне Method Builder (Построитель методов) находятся кнопки управления аргументами. Они выполняют следующие действия:


Кнопка

Назначение

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

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

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

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



Добавление событий класса
Для работы с событиями класса необходимо перейти на вкладку Events (События) построителя, которая показана на  14.
Для работы с событиями в построителе предназначено диалоговое окно Event Builder (Построитель событий) ( 15), которое открывается при нажатии кнопки Add New Event to Current Class (Добавить новое событие в текущий класс) на панели окна построителя. Для открытия этого окна можно также выбрать команду New (Новое) меню File (Файл), а затем значение Event (Событие).
Диалоговое окно построителя событий похоже на окно построителя методов. При необходимости можно добавить аргументы в событие с помощью окна Add Argument (Добавить аргумент), аналогичного окну добавления аргументов в метод.
При необходимости можно работать сразу со всеми членами класса с помощью вкладки All (Все) построителя классов ( 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
Замечание
Необходимо отметить, что спроектированные при помощи построителя классов члены класса после завершения проектирования и сохранения класса уже недоступны в построителе для редактирования или удаления. Неудачно созданные и сохраненные члены класса удаляются непосредственно из кода модуля класса в редакторе кода.
Созданные таким образом классы работают только в проекте, для которого они созданы. Однако подход ООП изобретен в том числе и для многократного использования кода, чем он и замечателен. Такую возможность предоставляет Visual Basic 6.
Класс как способ многократного использования кода
Как и компоненты ActiveX, класс служит для многократного использования кода. Однако в отличие от компонентов ActiveX, которые специально разрабатываются для применения во всех последующих приложениях, класс действует только в рамках данного проекта. Это ограничение можно устранить, подключив проект с интересующим классом к текущему проекту с помощью окна ссылок Reference. После того как проект подключен к разрабатываемому приложению, можно легко сослаться на класс, например, при создании объекта, следующим образом:
Dim NewObj As New MyClass.clsClass
Здесь MyClass — это проект, который содержит интересующий пользователя класс clsClass.

 

 
На главную | Содержание | < Назад....Вперёд >
С вопросами и предложениями можно обращаться по nicivas@bk.ru. 2013 г. Яндекс.Метрика