Visual Basic 6. Руководство разработчика


Реализация семейства - часть 2


Программа 15.9. Метод Remove переменной DataCollection

Public Function Remove(index As Long) As Boolean

If index < 0 Or index > DataCollection.Count Then

DataCollection.Remove index

Remove = True

Else

Err Raise vbObiectError + 2, "ClassName", _

"Couldn't remove item"

(... элемент удалить нельзя)

Remove = False

End If

End Function

Синтаксис метода Raise для объекта Err:

Err.Raise number, source, description

где source — имя компонента, в котором появляется ошибка (возможно, что несколь­ко компонентов инициируют одинаковую ошибку). Основное приложение должно знать одновременно номер и источник ошибки, а затем предпринять соответст­вующие действия (т.е. устранить причину, которая инициировала ошибку или повторить операцию).

Метод Item выбирает указанный элемент из семейства, основываясь на индексе, который служит аргументом. Если индекс выходит за границы семейства, возникает ошибка 2 выполнения.

Программа 15.10. Метод Item переменной DataCollection

Public Function Itemfindex As Long) As Double

If index < 0 Or index > DataCollection.Count Then

Err.Raise vbObjectError + 1, "ClassName", _

"Index out of bounds"

'(Индекс вышел за пределы границ массива)

Else

Item = DataCollection(index)

End If

End Function

Последний метод (Clear) удаляет все элементы из семейства. Поскольку семейство не имеет собственного метода Clear, необходимо удалить все элементы из семей ства с помощью его метода Remove. Заметьте, что обход семейства осуществляет из конца в начало. Прямой обход может вызвать ошибку исполнения, поскольку сразу после удаления первого элемента свойство DataCollection Count становится меньше на единицу, но это изменение не влияет на число итераций.

Программа 15.11. Метод Clear переменной DataCollection

Public Function Clear() As Boolean

On Error GoTo ClearError

For i = DataCollection.Count To 1 Step -1

DataCollection Remove i

Next

Clear = True

Exit Function

]

ClearError:

Clear = False




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



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