Основы офисного программирования и язык VBA


Пример 5.5


Option Explicit 'Класс ВладелецМашины 'Наследует интерфейсы классов Личность и Машина Implements Машина Implements Личность

'Свойства класса Private Сам As Личность Private ЕгоМашина As Машина

Private Sub Class_Initialize() Set Сам = New Личность Set ЕгоМашина = New Машина End Sub

'Реализация интерфейсов класса Личность Private Sub Личность_CopyPerson(You As Личность) Сам.CopyPerson (You) End Sub

Private Sub Личность_InitPerson(ByVal FN As String, ByVal LN As String, ByVal DoB As Date) 'Инициализация личности Сам.InitPerson FN, LN, DoB End Sub

Private Sub Личность_PrintPerson() 'Печать в отладочном окне Immediate Сам.PrintPerson End Sub

Private Sub Личность_SayWhoIs() ' Вывод сообщения о поле и возрасте владельца машины Dim StrMsg As String StrMsg = "Думаю, Владелец машины марки: " & _ ЕгоМашина.МаркаМашины & " это - " If Сам.WhoIs Then If Year(Сам.ВашаДатаРождения) > 1967 Then StrMsg = StrMsg & "молодая девушка!" Else: StrMsg = StrMsg & "женщина!" End If Else If Year(Сам.ВашаДатаРождения) > 1967 Then StrMsg = StrMsg & "молодой человек!" Else: StrMsg = StrMsg & "мужчина!" End If End If MsgBox (StrMsg) End Sub

Private Function Личность_WhoIs() As Boolean Сам.WhoIs End Function

Private Property Let Личность_ВашаДатаРождения(ByVal NewValue As Date) Сам.ВашаДатаРождения = NewValue End Property

Private Property Get Личность_ВашаДатаРождения() As Date 'Зажигает событие ДеньРождения 'в зависимости от значения текущей даты Личность_ВашаДатаРождения = Сам.ВашаДатаРождения End Property

Private Property Let Личность_ВашаФамилия(ByVal NewValue As String) 'Зажигает событие ИзменениеФамилии Сам.ВашаФамилия = NewValue End Property

Private Property Get Личность_ВашаФамилия() As String Личность_ВашаФамилия = Сам.ВашаФамилия End Property

Private Property Let Личность_ВашеИмя(ByVal NewValue As String) Сам.ВашеИмя = NewValue End Property

Private Property Get Личность_ВашеИмя() As String Личность_ВашеИмя = Сам.ВашеИмя End Property

Private Property Let Личность_ВашеОтчество(ByVal NewValue As String) Сам.ВашеОтчество = NewValue End Property

Private Property Get Личность_ВашеОтчество() As String Личность_ВашеОтчество = Сам.ВашеОтчество End Property

'Реализация интерфейсов класса Машина Private Property Get Машина_ДатаВыпускаМашины() As Date Машина_ДатаВыпускаМашины = ЕгоМашина.ДатаВыпускаМашины End Property

Private Property Get Машина_МаркаМашины() As String Машина_МаркаМашины = ЕгоМашина.МаркаМашины End Property

Private Property Get Машина_ЦветМашины() As String Машина_ЦветМашины = ЕгоМашина.ЦветМашины End Property

Private Sub Машина_PrintDataCar() ЕгоМашина.PrintDataCar End Sub

Private Sub Машина_НоваяМашина(M As String, D As Date, C As String) ЕгоМашина.НоваяМашина M, D, C End Sub

'Собственный интерфейс класса ВладелецМашины 'Public методы - интерфейс Владельца машины Public Sub InitCarOwner(FN As String, LN As String, DoB As Date, _ Marka As String, DB As Date, Color As String) 'Инициализация данных о хозяине и его машине Личность_InitPerson FN, LN, DoB Машина_НоваяМашина Marka, DB, Color End Sub

Public Sub ConnectOwnerAndCar(pers As Личность, car As Машина) 'соединяет данные о хозяине и его новой машине Сам.CopyPerson pers Машина_НоваяМашина car.МаркаМашины, car.ДатаВыпускаМашины, _ car.ЦветМашины End Sub

Public Sub PrintOwnerData() Личность_PrintPerson Debug.Print " владеет машиной: " Машина_PrintDataCar End Sub

Пример 5.5.

Закрыть окно






Начало  Назад  Вперед



Книжный магазин