ќсновы офисного программировани€ и €зык VBA


ѕример 5.10


Option Explicit

'ќпределение класса —писокЋичностей

'—войства

Private First As Ёлемент—пискаЋичностей

Private Last As Ёлемент—пискаЋичностей

Public Count As Integer

'ћетоды

Private Sub Class_Initialize()

Set First = Nothing

Set Last = Nothing

Count = 0

End Sub

Public Sub AddFirst(F As Ћичность)

Dim Elem As New Ёлемент—пискаЋичностей

Dim Info As New Ћичность

'—оздаем копию переменной F. ¬ списке будем использовать копию, а не ссылку.

Info.CopyPerson F

Set Elem.—ам = Info

Set Elem.ƒруг = First

If First Is Nothing Then

Set Last = Elem

End If

Set First = Elem

Count = Count + 1

End Sub

Public Sub PrintList()

Dim P As Ёлемент—пискаЋичностей

Dim Q As Ћичность

Set P = First

While Not (P Is Nothing)

Set Q = P.—ам

Q.PrintPerson

Set P = P.ƒруг

Wend

End Sub

Public Sub AddLast(F As Ћичность)

Dim Elem As New Ёлемент—пискаЋичностей

Dim Info As New Ћичность

'—оздаем копию переменной F. ¬ списке будем использовать копию, а не ссылку.

Info.CopyPerson F

Set Elem.—ам = Info

Set Elem.ƒруг = Nothing

If First Is Nothing Then

Set First = Elem

Else

Set Last.ƒруг = Elem

End If

Set Last = Elem

Count = Count + 1

End Sub

Public Sub ClearList()

'ѕопытка освободить пам€ть не достигает успеха из-за отсутстви€

'соответствующего оператора.

Dim P As Ёлемент—пискаЋичностей, R As Ёлемент—пискаЋичностей

Dim Q As Ћичность

Set P = First

While Not (P Is Nothing)

Set Q = P.—ам

'Unload Q

Set R = P

Set P = P.ƒруг

'Unload R

Wend

'ќбнуление указателей

Set First = Nothing

Set Last = Nothing

Count = 0

End Sub




Ќачало  Ќазад  ¬перед



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