Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания / VBA / Задание_1 / Лаб1_VB6.doc
Скачиваний:
42
Добавлен:
17.04.2015
Размер:
359.94 Кб
Скачать

3. События формы и элементов управления

Работа программы строится на основе реакции объекта на какое либо событие. Любому событию обьекта может быть назначена процедура обработки этого события. Например, при нажатии кнопки может открываться другая форма или выполняться какие-то расчеты. Ниже представлены процедуры для событий - щелчкок мышью по кнопкам формы.

Задание 3.1 Создать обработчики событий — процедуры для инициализации самой формы и для элементов управления формы - кнопок.

Действия.

  • Дважды щелкнуть по форме. Откроется окно кода с заготовкой процедуры обработки события для формы . Выбрать в списке событий (правое поле сверху) событие Initialize() для формы. Заполнить строки между первой и последней строками заготовки инструкциями кода по образцу

Private Sub UserForm_Initialize()

BtnStop.Enabled = False

Image1.Enabled = False

End Sub

  • Дважды щелкнуть по кнопке Старт. Откроется окно кода с заготовкой процедуры обработки события - щелчок по кнопке BtnStart . Заполнить строки между первой и последней строками заготовки инструкциями кода по образцу

Private Sub BtnStart_Click()

TextBox1.Text = Format(Date, "Dddd,dd mmmm YYYY")

StartTime = Now

TextStart.Text = Format(StartTime, "hh:mm:ss")

BtnStop.Enabled = True

BtnStart.Enabled = False

End Sub

  • По аналогии создайте обработчик событий для кнопки Стоп по образцу

Private Sub BtnStop_Click()

StopTime = Now

SeansTime = StopTime - StartTime

TextStop.Text = Format(StopTime, "hh:mm:ss")

BtnStop.Enabled = False

Image1.Enabled = True

End Sub

  • По аналогии создайте обработчик событий для кнопки с рисунком по образцу

Private Sub Image1_Click()

TextSeans.Text = Format(SeansTime, "hh:mm:ss")

Image1.Enabled = False

CommandButton4.Enabled = True

End Sub

  • По аналогии создайте обработчик событий по образцу для кнопки Выход

Private Sub CommandButton4_Click()

End

End Sub

Программа готова. Нажмите кнопку F5 для запуска программы. Проверьте работоспособность программы.

Результат — не работает кнопка с часами. Почему?

Причина кроется в том, что программа учитывает диапазон действия трех переменных StartTime, StopTime, SeansTime только в области локальных процедур — там, где они инициированы и поэтому доступны. Но переменные StartTime и SeansTime недоступны в процедурах внешних по отношению к тем процедурам, где они впервые были инициированы, т.к. не имеют статуса переменных действующих на уровне модуля. Чтобы исправить эту ошибку, необходимо объявить переменные StartTime и SeansTime в разделе общих объявлений формы.

  • Дважды щелкнуть по форме. Откроется окно программы. В верхнем списке всех процедур (слева) выбрать — (общая область) и ввести в этой области две инструкции: Dim StartTime As Variant или Private StartTime As Date

Dim SeansTime As Variant или Private SeansTime As Date

Объявленные таким образом переменные StartTime и SeansTime доступны в любой процедуре этой формы. Теперь программа обрабатывает корректно все события.

Самостоятельная работа

Дополнить программу процедурой, которая в дополнительном поле формы выводи-ла Вашу фамилию с инициалами при щелчке по новой кнопке (см.образец ниже). "Образ студента" на кнопке — это файл Face02.ico

Соседние файлы в папке Задание_1