Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба 1-13 3ий сем (Задания) / КИТ_лр12_VBA_пользовательские_формы.doc
Скачиваний:
26
Добавлен:
15.06.2014
Размер:
1.63 Mб
Скачать

3 Программа с использованием пользовательской формы: пример 2

Пусть требуется создать пользовательскую форму для возведения чисел в заданную степень и для извлечения корней заданной степени (или для выполнения обеих этих операций). Для ввода числа, которое требуется возвести в степень (или извлечь из него корень), должно использоваться текстовое поле. Показатель степени (для возведения или извлечения корня) задается с помощью счетчика. Для выбора операции (возведение в степень или извлечение корня) используются флажки. Результаты должны выводиться в текстовые поля. Вычисление должно выполняться по нажатию кнопки, размещенной на пользовательской форме. Кроме того, требуется создать кнопку для закрытия пользовательской формы.

3.1 Создание элементов управления и указание их свойств

Пусть требуется создать пользовательскую форму примерно такого вида, как показано на рисунке 3. Для этого потребуется задать следующие элементы управления и их свойства (конечно, имена элементов управления могут быть и другими):

  • форма в целом (UserForm): NameStepen_koren (имя формы, используемое для ссылок на нее); Caption – Степени и корни (заголовок формы);

  • надписи (Label): две надписи со свойствами CaptionЧисло и Показатель;

  • текстовые поля (TextBox): четыре текстовых поля со свойствами Nameosnovanie, pokazatel, stepen, koren (на рисунке 3 эти текстовые поля приведены сверху вниз);

  • счетчик (SpinButton): свойство Namepokaz;

  • флажки (CheckBox): два флажка со свойствами NameVozved и Izvlech, Caption - Возведение и Извлечение;

  • кнопки: кнопка для вычисления результата должна иметь свойства NameSchet, Caption – Вычислить, а кнопка для закрытия формы - свойства NameVyhod, Caption – Выход.

Примечание – Важно понимать, что все связи между элементами управления (например, отображение значения счетчика, вывод результатов операций и т.д.) должны задаваться в программе для работы с формой.

Рисунок 3 – Вид пользовательской формы (пример 2) в результате ее редактирования

Рисунок 4 – Вид пользовательской формы (пример 2) во время работы

3.2 Разработка программы

Программа для работы с формой для данной задачи должна иметь примерно следующий вид:

Private Sub UserForm_Initialize()

Vozved.Value = True

Izvlech.Value = True

End Sub

Private Sub pokaz_change()

pokazatel.Value = pokaz.Value

End Sub

Private Sub raschet_click()

x = CSng(osnovanie.Value)

y = CInt(pokazatel.Value)

If vozved.Value = True Then

z = x ^ y

stepen.Value = z

Else

stepen.Value = ""

End If

If Izvlech.Value = True Then

z = x ^ (1 / y)

koren.Value = z

Else

koren.Value = ""

End If

End Sub

Private Sub Vyhod_click()

Unload stepen_koren

End Sub

Процедура UserForm_Initialize() выполняется в начале работы с пользовательской формой. Операторы Vozved.Value = True и Izvlech.Value = True означают, что в начале работы с формой оба флажка (Vozved и Izvlech) должны быть установлены.

Процедура pokaz_change() выполняется при каждом изменении значения счетчика pokaz. Оператор pokazatel.Value = pokaz.Value означает, что значение счетчика pokaz выводится в текстовое поле pokazatel (т.е. присваивается его свойству Value). Это необходимо, чтобы видеть на экране значение счетчика (т.е. заданную степень).

Процедура Schet_Click() выполняется при каждом нажатии кнопки с именем Schet (т.е. кнопки “Вычислить”). В операторе x = CSng(osnovanie.Value) переменной x присваивается значение текстового поля osnovanie (т.е. число, которое требуется возвести в степень и/или извлечь из него корень); функция CSng преобразует значение этого поля в тип Single (т.е. вещественное число). В операторе y = CInt(pokazatel.Value) переменной y присваивается значение поля pokazatel (т.е. показатель степени), преобразованное в тип Integer.

Если выполняется условие vozved.Value = True (т.е. флажок Vozved установлен), то выполняется заданное возведение в степень, и результат выводится в текстовое поле Stepen. Если условие Vozved.Value = True не выполняется (т.е. флажок Vozved сброшен), то текстовое поле Stepen очищается (в него выводится пустая строка).

Аналогично, если установлен переключатель Izvlech, то выполняется извлечение корня заданной степени, и результат выводится в текстовое поле Koren.

Процедура Vyhod_click(), выполняемая при нажатии кнопки с именем Vyhod, предназначена для закрытия формы. Она аналогична процедуре для этой цели, приведенной в предыдущем примере.

На рисунке 4 показан вид созданной пользовательской формы во время работы с ней.