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

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

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

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

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

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

 

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