Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Visual Basic.doc
Скачиваний:
105
Добавлен:
09.04.2015
Размер:
1.1 Mб
Скачать

Лекция 15 Пользовательский тип данных

Кроме встроенных типов данных, таких как Integer,Longи т.п., VB поддерживает также типы данных, определяемые пользователем. Они могут быть созданы как на основе стандартных типов данных, так и на основе ранее определенных пользователем типов данных.

Для определения пользовательского типа данных используется ключевое слово Type:

[Private / Public] Type Имя_типа

ИмяЭлемента1 [([Размерность])] As Тип

[ИмяЭлемента2 [([Размерность])] As Тип]

End Type

Определив собственный тип данных, вы можете использовать его для объявления переменных этого типа. Эти переменные могут быть локальными, глобальными или переменными контейнера (подробнее):

Пример

Type Товар

Название As String

Цена As Currency

Код As String

End Type

Dim Инструмент As Товар

.

.

.

Инструмент.Название = "Отвертка"

Инструмент.Цена =120

.

.

.

В этом примере определяется тип данных Товар. Затем объявляется переменнаяИнструменттипаТовар, и устанавливаются конкретные значения составляющих этой переменной.

Доступ к элементам переменной пользовательского типа осу­ществляется, по аналогии с доступом к свойствам, путем указания точки после имени переменной. При этом переменные одинакового типа можно присваивать не поэлементно, а напрямую:

Type Субъект

Фамилия As String

ТабельныйНомер As Integer

End Type

Читатель As Субъект, Пользователь As Субъект

Private Sub Commandl_Click()

Пользователь.Фамилия = "Иванов И.И."

Пользователь.ТабельныйНомер = 218739

Читатель = Пользователь

End Sub

Переменные ЧитательиПользователь относятся к одному типуСубъект. Поэтому они присваиваться напрямую, а не поэлементно.

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

Type Персона

Имя As String

Фамилия As String

End Type

Type Клиент

Идентификатор As Персона

ДеньРождения As Date

End Type

Dim Покупатель As Клиент

Private Sub Command1_Click()

Покупатель.Идентификатор.Имя = "Иван"

Покупатель.Идентификатор.Фамилия = "Петров"

End Sub

Данные пользовательского типа рекомендуется использовать при обработке данных неизменной структуры.

ИнструкцияWith

Инструкция Withпозволяет указывать объект только один раз для последовательности инструкций. ИнструкцияWithускоряет выполнение процедур и помогает избежать повторного задания имени объекта.

Command1.Caption = “Вычислить”

Command1.Font.Bold = True

Command1.Visible = False

С применением инструкции Withэтот программный код следовало бы записать так:

With Command1

.Caption = “Вычислить”

.Font.Bold = True

.Visible = False

End With

Для увеличения эффективности программы возможно создание вложенных инструкций With. Это показывает следующий пример.

Command1.Caption = “Вычислить”

Command1.Font.Name = "Arial"

Command1.Font.Bold = True

Command1.Font.Size = 15

Command1.Visible = False

Эквивалентный по результату действия программный код:

With Command1

.Caption = “Вычислить”

With .Font

.Name = "Arial"

.Bold = True

.Size = 15

End With

.Visible = False

End With