Мегаобучалка Главная | О нас | Обратная связь


Выключатель (ToggleButton)



2015-11-20 1091 Обсуждений (0)
Выключатель (ToggleButton) 0.00 из 5.00 0 оценок




Воплотим предыдущую задачу в интерфейсе с выключателями (Рис. 10‑13).

Рис. 10‑13.Форма с выключателями

Начальные условия

1) при создании формы присвойте следующие имена элементам управления:

­ командной кнопке Отмена – cmdОтмена

­ выключателю Осенний семестр – tglОсень

­ выключателю Весенний семестр – tglВесна

2) саму форму назовите frmСеместрToggleButton.

Тогда код, который инициализирует форму с двумя выключателями, запишется так:

Sub frmСеместрToggleButton_Initialize()

With frmСеместрToggleButton

.cmdОтмена.Cancel = True

.Show

End With

End Sub

Процедуры обработки события Click для каждого элемента управления запишутся следующим образом:

Private Sub tglОсень_Click()

Выключатели

End Sub

Private SubtglВесна_Click()

Выключатели

End Sub

Sub Выключатели()

If tglОсень.Value = True And tglВесна.Value = True Then

MsgBox "Выбраны оба семестра!", vbInformation, _

"Сообщение"

ElseIf tglОсень.Value = True And tglВесна.Value = False Then

MsgBox "Выбран осенний семестр!", vbInformation, _

"Сообщение"

ElseIf tglОсень.Value = False And tglВесна.Value = True Then

MsgBox "Выбран весенний семестр!", vbInformation, _

"Сообщение"

Else

MsgBox "Не выбран ни один семестр!", vbInformation, _

"Сообщение"

End If

End Sub

Private Sub cmdОтмена_Click()

Unload Me

End Sub

Задание:

1. В Модуль11 наберите и протестируйте программу frmСеместрToggleButton_Initialize.

2. В модуле формы frmСеместрToggleButton наберите текст остальных программ и протестируйте работу приложения.

Переключатель (OptionButton)

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

Итак, если пользователь должен выбрать только один семестр, создадим и пропишем форму, представленную на Рис. 10‑14.

Рис. 10‑14. Альтернативный выбор семестров

Начальные условия

0) при создании формы присвойте следующие имена элементам управления:

­ командной кнопке Отмена – cmdОтмена

­ выключателю Осенний семестр – optОсень

­ выключателю Весенний семестр – optВесна

1) саму форму назовите frmСеместрOptionButton.

Тогда код, который инициализирует форму с двумя переключателями, запишется так:

Sub frmСеместрOptionButton_Initialize()

With frmСеместрOptionButton

.cmdOK.Default = True

.cmdОтмена.Cancel = True

.optОсень.Value = True

.Show

End With

End Sub

Для того чтобы узнать, установлен переключатель или сброшен, воспользуемся свойством Value:

Private Sub cmdOK_Click()

If optОсень.Value = True Then

MsgBox "Выбран осенний семестр!", vbInformation, _

"Сообщение"

Else

MsgBox " Выбран весенний семестр!", vbInformation, _

"Сообщение"

End If

End Sub

Private Sub cmdОтмена_Click()

Unload Me

End Sub

Задание:

1. В Модуль11 наберите и протестируйте программу frmСеместрOptionButton_Initialize.

2. В модуле формы frmСеместрOptionButton наберите текст остальных программ и протестируйте работу приложения.

Счетчик (SpinButton)

С помощью счетчика в форме вводятся численные значения.

Рассмотрим пример создания простой формы для нахождения суммы чисел, принадлежащих некоторому диапазону.

§ Форма должна иметь следующий вид:

Рис. 10‑15. Форма для нахождения суммы чисел

§ Минимальное значение счетчиков 0, максимальное – 100.

§ Результат нахождения суммы выводить в поле Результат при изменении значений От и до(если значение в поле до: больше или равно значению в поле От).

§ Щелчок по кнопке Отмена выгружает форму из оперативной памяти.

Начальные условия

1) при создании формы присвойте следующие имена элементам управления:

­ полю От – txtОт

­ полю до – txtДо

Напоминане: именно в этих полях будут отображаться числовые значения, изменяемые с помощью счетчика. Не забудьте о них!

­ 1-му счетчику – spnОт

­ 2-му счетчику – spnДо

­ кнопке Отмена – cmdОтмена

­ полю Результат – txtРезультат

2) саму форму назовите frmСумма.

ВЫПОЛНЕНИЕ ЗАДАНИЯ:

1. Создайте форму.

2. Наберите текст программы инициализации формы (в модуле формы):

Private Sub UserForm_Initialize()

spnОт.Min = 0

spnОт.Max = 100

spnОт.SmallChange = 1

spnДо.Min = 0

spnДо.Max = 100

spnДо.SmallChange = 1

cmdОтмена.Cancel = True

End Sub

3. Дважды щелкните (в форме!) по элементу spnОт - появится пустая процедура
Private Sub spnОт_Change. Далее наберите следующий код:

Private Sub spnОт_Change()

txtОт.Value = spnОт.Value

Сумма = 0

If Val(txtОт.Value) <= Val(txtДо.Value) Then

For i = Val(txtОт.Value) To Val(txtДо.Value)

Сумма = Сумма + i

Next

txtРезультат.Value = Сумма

Else

txtРезультат.Value = ""

End If

End Sub

4. То же самое проделайте для счетчика spnДо:

Private Sub spnДо_Change()

txtДо.Value = spnДо.Value

Сумма = 0

If Val(txtОт.Value) <= Val(txtДо.Value) Then

For i = Val(txtОт.Value) To Val(txtДо.Value)

Сумма = Сумма + i

Next

txtРезультат.Value = Сумма

Else

txtРезультат.Value = ""

End If

End Sub

Как вы видите, процедуры spnОт_Change и spnДо_Change очень похожи. Поэтому модернизируйте эти две программы, организовав вызов подпрограммы ИзменениеСчетчика.

5. Наберите программу обработки события «щелчок/нажатие кнопки cmdОтмена», которая выгружает форму из памяти:

Private Sub cmdОтмена_Click()

Unload frmСумма

End Sub

Замечания:

ü Встроенная функция Val преобразовывает число, написанное в символьном виде, в числовой формат.

ü Условие: If Val(txtОт.Value) <= Val(txtДо.Value) Then
проверяет упорядоченность чисел «От» и «до» по возрастанию. Если числа упорядочены, то считается сумма чисел, принадлежащих заданному диапазону, если нет, то сумма не подсчитывается и поле Результат пусто.

ü Верхнюю и нижнюю границы пользователь может вводить вручную. Для того чтобы программа реагировала на введенные числа, необходимо добавить процедуру обработки события «изменение значения поля ввода». Для поля ввода txtОт она выглядит следующим образом:

Private Sub txtОт_Change()

Сумма = 0

If Val(txtОт.Value) <= Val(txtДо.Value) Then

For i = Val(txtОт.Value) To Val(txtДо.Value)

Сумма = Сумма + i

Next

txtРезультат.Value = Сумма

Else

txtРезультат.Value.Value = ""

End If

End Sub

Аналогичная процедура будет и для поля ввода txtДо, поэтому целесообразно оформить их в виде вызова подпрограммы ИзменениеПоляВвода (напишите её самостоятельно).

6. В текстовом поле пользователь может сделать ошибку и ввести символ, а не цифру. Чтобы избежать этого необходимо проверить введенную пользователем последовательность. Как вы знаете, это можно сделать с помощью встроенной функции IsNumeric. Тогда предыдущая процедура примет вид:

Private Sub txtОт_Change()

If IsNumeric(txtОт.Value) = True Then

Сумма = 0

If Val(txtОт.Value) <= Val(txtДо.Value) Then

For i = Val(txtОт.Value) To Val(txtДо.Value)

Сумма = Сумма + i

Next

txtРезультат.Value = Сумма

Else

txtРезультат.Value.Value = ""

End If

Else: MsgBox "Число введено неверно!"

End If

End Sub



2015-11-20 1091 Обсуждений (0)
Выключатель (ToggleButton) 0.00 из 5.00 0 оценок









Обсуждение в статье: Выключатель (ToggleButton)

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1091)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)