Лекция 3: 2 Для создания возможности использования объектов файловой системы нужно подключить библиотеку DLL, содержащую эти объекты: меню Разработать > Ccылки > Microsoft Scriptlet Component (сделать щелчок на соответствующем элементе управления CheckBox). Не могу найти меню Разработать (Develop)>Links и т.д. |
Опубликован: 04.07.2006 | Уровень: для всех | Доступ: свободно
Лекция 8:
Элементы работы с классами. Кратко об отладке программ
Практическая работа 49. Работа с классом
Создание компонентов класса, создание экземпляра класса рассматривается на примере проекта, дающего справку (минимальные данные, служащие для демонстрации) желающим провести отпуск за границей. Пользователь должен сделать щелчок на соответствующем элементе массива OptionButton, если он хочет быть в отпуске за границей; далее в списке ComboBox выбрать страну, после чего выводится список городов, где можно провести отпуск и соответствующая стоимость, рис. 8.1.
В данном случае создаeтся класс с 4 свойствами и 3 методами. Далее на основе класса создаeтся объект:
Dim object As Class1 Set object = New Class1
Созданный объект нужно после работы удалить из памяти: см. код процедуры Form_Unload().
Последовательность действий:
- в стандартный проект добавить модуль класса: контекстное меню Окна проекта Добавить Модуль класса,
- ввести код в область модуля класса, см. ниже; пояснения даны под комментариями. Инициализация свойств класса проводится в процедуре Class_Initialize (),
- создать методы класса. Три метода создаются в процедурах: Public Function Met1(), Public Function Met2() и Public Function Met3 (). Ввести этот код, пояснения даны под комментариями к коду,
- создать требуемые объекты на форме (см. код и рис. 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