Опубликован: 04.07.2006 | Уровень: для всех | Доступ: свободно
Лекция 8:

Элементы работы с классами. Кратко об отладке программ

Практическая работа 49. Работа с классом

Создание компонентов класса, создание экземпляра класса рассматривается на примере проекта, дающего справку (минимальные данные, служащие для демонстрации) желающим провести отпуск за границей. Пользователь должен сделать щелчок на соответствующем элементе массива OptionButton, если он хочет быть в отпуске за границей; далее в списке ComboBox выбрать страну, после чего выводится список городов, где можно провести отпуск и соответствующая стоимость, рис. 8.1.

В данном случае создаeтся класс с 4 свойствами и 3 методами. Далее на основе класса создаeтся объект:

Dim object As Class1
Set object = New Class1

Созданный объект нужно после работы удалить из памяти: см. код процедуры Form_Unload().

Последовательность действий:

  1. в стандартный проект добавить модуль класса: контекстное меню Окна проекта \to Добавить \to Модуль класса,
  2. ввести код в область модуля класса, см. ниже; пояснения даны под комментариями. Инициализация свойств класса проводится в процедуре Class_Initialize (),
  3. создать методы класса. Три метода создаются в процедурах: Public Function Met1(), Public Function Met2() и Public Function Met3 (). Ввести этот код, пояснения даны под комментариями к коду,
  4. создать требуемые объекты на форме (см. код и рис. 8.1), ввести код в область (General) (Declarations) формы, код процедуры Form_Load () и код процедуры Command1_Click (), стартовать проект, проверить его работу.

Область модуля класса

' описание переменной, используемой при принятии решения, 
' хочет ли пользователь ехать за границу
Public Urlaub As Boolean 
Public STAAT As String ' страна, выбранная пользователем
Public Ort As String ' город, имеющийся в списке стран
Public Kosten As String ' стоимость поездки

Private Sub Class_Initialize() ' инициализация свойств класса
Urlaub = False: STAAT = "" : Ort = "": Kosten = ""
End Sub

Public Function Met1() As Boolean
' если пользователь нажал кнопку OptionButton (Ja), то 
' выполнить процедуры Met2 и Met3, результатом 
' работы которых является вывод данных: город и 
' стоимость, иначе Met1 = False и выводится 
' сообщение "Hier gibt man Auskunft ueber Urlaub im 
' Ausland" - "Справки выдаются желающим 
' отдыхать за границей"
If Urlaub = True Then 
Ort = Met2()
Kosten = Met3()
Met1 = True
Else
Met1 = False
End If
End Function

' после щелчка на кнопке Ja/Nein (массив переключателей),
' рис. 8.1 и выбора страны в списке ComboBox 
' (Name = STAAT, слева надпись: "Staat auswaehlen!")
' вывести место отдыха
Public Function Met2() As String 
Select Case STAAT 
Case "SPANIEN": Met2 = "MADRID"
Case "ENGLAND": Met2 = "LONDON"
Case "SCHWITZERLAND": Met2 = "GENF"
End Select
End Function

Public Function Met3() As String ' вывести стоимость
Select Case STAAT
Case "SPANIEN": Met3 = "500 $"
Case "ENGLAND": Met3 = "800 $"
Case "SCHWITZERLAND": Met3 = "1000 $"
End Select
End Function

Область формы

Dim url As Class1 ' описать объект
Private Sub Form_Load() ' создать объект
Set url = New Class1 
' заполнить список ComboBox названиями трeх стран
STAAT.AddItem "SPANIEN": STAAT.AddItem "ENGLAND"
STAAT.AddItem "SCHWITZERLAND"
End Sub

Private Sub Command1_Click() ' вывести справочные данные
Dim stri As String ' описание аргумента функции MsgBox
' значение свойства STAAT объекта url взять из списка поля 
' ComboBox
url.STAAT = STAAT.Text 
' значени свойства Urlaub объекта url взять из поля массива
' OptionButton
url.Urlaub = Option1(0).Value 
If url.Met1 = True Then ' вывод справочных данных
stri = CStr(url.Ort) & vbCrLf: stri = stri & CStr(url.Kosten)
MsgBox stri 
Else
stri = "Hier gibt man Auskunft ueber Ublaub im Ausland"
MsgBox stri
End If
End Sub
' удалить объект из памяти
Private Sub Form_Unload(Cancel As Integer) 
Set url = Nothing
End Sub
Работа с классом

увеличить изображение
Рис. 8.1. Работа с классом
Константин Новков
Константин Новков
Как подключить библиотеку DLL ?
антонина квасова
антонина квасова
Что реализует инструкция Open - Open "a:\t.txt" For Output As #1