Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Объединение визуальных компонентов в программу




На форму в середину между двумя фреймами поместим два визуальных компонента TextBox для ввода рублевых курсов евро и доллара с именами KrsEuro и KrsDoll, а сверху в визуальном компоненте Label с именем КурсВалют сделаем подпись «Курс валют». В макрос Валюта добавим операторы задания начальных значений строкам ввода. VBA автоматически преобразует числа в строки.

KursEuro = 45.07

ValCalc.KrsEuro.Text = KursEuro

KursDoll = 30.62

ValCalc.KrsDoll.Text = KursDoll

Сделаем двойной щелчок по визуальному компоненту KrsEuro. Макрос KrsEuro_Change() будет обрабатывать событие «изменение строки текста» в визуальном компоненте KrsEuro: ввод в глобальную переменную KursEuro с анализом ошибок ввода «не число».

Если введено число, введенный текст будет черного цвета. Над строкой ввода в визуальном компоненте КурсВалют появится текст черного цвета «Курс валют». Веденная строка текста будет преобразована в число и присвоена глобальной переменной KursEuro.

Если введено не число, не будем выводить на экран окно с сообщением об ошибке. Ошибку будем отмечать прямо в строке ввода визуального компонента TextBox. Введенный текст станет красного цвета, а над строкой ввода в визуальном компоненте КурсВалют появится текст красного цвета «Не число». Пользователь исправит текст в строке, и снова запустится макрос KrsEuro_Change().

Private Sub KrsEuro_Change()

If IsNumeric(ValCalc.KrsEuro.Text) Then

ValCalc.КурсВалют.Caption = "Курс валют"

ValCalc.КурсВалют.ForeColor = &H80000008

ValCalc.KrsEuro.ForeColor = &H80000008 'черный

KursEuro = ValCalc.KrsEuro.Text

Else 'строка не число

ValCalc.КурсВалют.Caption = "Не число"

ValCalc.КурсВалют.ForeColor = &HFF&

ValCalc.KrsEuro.ForeColor = &HFF& 'красный цвет

End If

End Sub

Обратите внимание, что свойство ForeColor цвет текста в окне задается значениями интенсивности свечения субписелей красного, синего и зеленого. Легче всего задавать цвет с помощью окна свойств. Нужно в окне MsVB открыть форму, щелкнуть элемент TextBox, в окне Properties выделить свойство ForeColor, кнопкой ▼ открыть вкладку Palette или System и щелкнуть цвет. В правом поле свойства ForeColor появится шестнадцатеричное число интенсивностей цветов. Это число нужно скопировать в буфер и вставить в текст макроса. При этом редактор VBA удалит из числа незначащие цифры, цвет останется, который выбрали.

Сделаем такой же макрос для компонента KrsDoll, выполним макрос Валюта и проверим, как все работает. В каждом окне введем не число и убедимся, что цвет стал красный, а потом исправим на число и убедимся, что цвет стал черный. Введем курсы 48,25 и 32,41, щелкнем кнопку <Выход> и убедимся, что глобальные переменные получили введенные значения.

Для ввода исходной суммы денег добавим на форму визуальный компонент Label с именем ВведитеВалюту, заголовок «Введите валюту», и визуальный компонент TextBox с именем InVal. Запрограммируем макрос InVal_Change() на ввод исходной суммы Sinput с такой же проверкой на ошибки ввода «не число». Текст аналогичен макросу KrsEuro_Change()

Для вывода пересчитанной суммы денег Sout добавим на форму визуальный компонент Label с именем ПолучитеВалюту, заголовок «Получите валюту», и визуальный компонент TextBox с именем OutVal. В этом окне будет только вывод

ValCalc.OutVal.Text = Round(Sout, 2)

который будет находиться в макросе командной кнопки <Пересчитать>. Функция Round округляет результат до двух десятичных цифр.

Текст макроса:

Private Sub Пересчет_Click()

If KursEuro <= 0 Or KursDoll <= 0 Then Exit Sub

Srub = Sinput * (pInRub _

+ pInEuro * KursEuro + pInDoll * KursDoll)

Sout = Srub * (pOutRub _

+ pOutEuro / KursEuro + pOutDoll / KursDoll)

ValCalc.OutVal.Text = Round(Sout, 2)

End Sub

В операторе If выполняется проверка, чтобы не было деления на ноль.

Запустим макрос Валюта и переведем 100 рублей в евро. Все работает правильно.

В заключение приведем окно валютного калькулятора, текст макроса формы и текст макроса Валя.

 




Поделиться:

Дата добавления: 2015-08-05; просмотров: 56; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты