Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Посiбник_VB.doc
Скачиваний:
9
Добавлен:
22.08.2019
Размер:
5.08 Mб
Скачать

Колекції

Колекція – це індексована структура даних, що має вбудовані можливості додання елементів, їх видалення та ітеративної обробки. Колекції можуть містити дані стандартних та користувацьких типів, а також об’єкти класів. Колекції можуть бути однорідними та неоднорідними, тобто містити елементи даних різних типів. Додаткові можливості, що надаються колекціями, - це вбудовані засоби зміни розмірів та обробки помилок. Колекція у свою чергу є об'єктом, вона має властивості і методами. Так властивість Count містить кількість об'єктів колекції.

Деякі методи колекцій

Ім'я методу

Призначення

Item

Дозволяє вибрати об'єкт у колекції

Add

Включає об'єкт до складу колекції

Remove

Виключає об'єкт зі складу колекції

Колекція повинна бути оголошена програмістом із застосуванням синтаксису:

(Public|Private|Dim) Ім’яКолекції As New Collection

Для роботи з елементами колекції в VB передбачена інструкція циклу For Each … In … Next, розглянута вище.

Приклад. Оголошено колекцію і три змінні, котрі включені в колекцію. Потім уся колекція роздруковується.

Private Sub frmMy_Load()

Dim List As New Collection

Dim i As Integer

Dim s As Single

Dim st As String

Dim v As Variant

i = 3

s = 1.5

st = "Test"

List.Add st: List.Add s: List.Add i

For Each v In List

Print v,

Next

End Sub

Результат роботи програми: .

У VB визначені дві вбудовані колекції об'єктів, до яких можна звертатися без їхнього оголошення:

  • Forms. У цю колекцію включені всі завантажені форми проекту.

  • Controls. Колекція включає всі керуючі елементи усіх форм.

Приклад. Процедура, яка робить текст на всіх мітках червоним.

Private Sub cmdRed_Click()

Dim MyLabels As New Collection

Dim MyLabel As Control

For Each MyLabel In Controls

If TypeOf MyLabel Is Label Then

MyLabels.Add MyLabel

End If

Next

For Each MyLabel In MyLabels

MyLabel.ForeColor = RGB(255, 0, 0)

Next

End Sub

Перший цикл у цій програмі переглядає всі керуючі елементи проекту. Якщо керуючий елемент - мітка, то він включається в колекцію MyLabels. Другий цикл переглядає всі елементи колекції MyLabels і встановлює червоний колір тексту для кожного елемента цієї колекції.

Приклад проекту зі стандартними елементами керування

Задача. У текстовому полі ввести елементи масиву, розділені пробілами. Вивести максимальний елемент.

Private Sub cmdMax_Click()

Dim s As String, i, n, k As Byte

Dim a(20), max As Integer

s = Trim(txtMas.Text) + "_"добавлення пробілу в кінець

'Знищення лишніх пробілів

i = 1

While i <> 0

i = InStr(s, "_ _")

s = Replace(s, "_ _ ", "_")

Wend

'Формування масиву чисел з рядка

k = 1 : n = 1

Do

i = InStr(k, s, "_") ‘пошук пробілу, починаючи з позиції k

If i <> 0 Then

a(n) = Val(Mid(s, k, i - k)) виділення числа

k = i + 1

n = n + 1 номер наступного елемента масиву

End If

Loop While i <> 0

'Знаходження максимуму в масиві чисел

max = a(1)

For i = 2 To n - 1

If max < a(i) Then max = a(i)

Next

'Вивід максимуму

lblMax.Visible = True

lblMax.Caption = "Mаксимум " + Str(max)

End Sub