- •11. Пользовательские формы
- •Валютный калькулятор
- •Вставка пользовательской формы
- •Настройка пользовательской формы
- •Оконные координаты
- •Цвета визуальных компонентов
- •Добавление визуальных компонентов
- •Закрытие пользовательской формы
- •Открытие пользовательской формы
- •Глобальные переменные
- •Объединение визуальных компонентов в программу
- •Модуль формы
- •Модуль Валя
Модуль формы
Option Explicit
Private Sub Выход_Click()
' ValCalc.Hide 'окно исчезает с экрана, но остается в памяти
Unload ValCalc 'окно удаляется из оперативной памяти
End Sub
Private Sub InRub_Click()
pInRub = 1
pInEuro = 0
pInDoll = 0
End Sub
Private Sub InEuro_Click()
pInRub = 0
pInEuro = 1
pInDoll = 0
End Sub
Private Sub InDoll_Click()
pInRub = 0
pInEuro = 0
pInDoll = 1
End Sub
Private Sub OutRub_Click()
pOutRub = 1
pOutEuro = 0
pOutDoll = 0
End Sub
Private Sub OutEuro_Click()
pOutRub = 0
pOutEuro = 1
pOutDoll = 0
End Sub
Private Sub OutDoll_Click()
pOutRub = 0
pOutEuro = 0
pOutDoll = 1
End Sub
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
Private Sub KrsDoll_Change()
If IsNumeric(ValCalc.KrsDoll.Text) Then
ValCalc.КурсВалют.Caption = "Курс валют"
ValCalc.КурсВалют.ForeColor = &H80000008
ValCalc.KrsDoll.ForeColor = &H80000008 'черный
KursDoll = ValCalc.KrsDoll.Text
Else 'строка не число
ValCalc.КурсВалют.Caption = "Не число"
ValCalc.КурсВалют.ForeColor = &HFF&
ValCalc.KrsDoll.ForeColor = &HFF& 'красный цвет
End If
End Sub
Private Sub InVal_Change()
If IsNumeric(ValCalc.InVal.Text) Then
ValCalc.ВведитеВалюту.Caption = "Введите валюту"
ValCalc.ВведитеВалюту.ForeColor = &H80000008
ValCalc.InVal.ForeColor = &H80000008 'черный
Sinput = ValCalc.InVal.Text
Else 'строка не число
ValCalc.ВведитеВалюту.Caption = "Не число"
ValCalc.ВведитеВалюту.ForeColor = &HFF&
ValCalc.InVal.ForeColor = &HFF& 'красный цвет
End If
End Sub
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
Модуль Валя
Option Explicit
Public pInRub As Double
Public pInDoll As Double
Public pInEuro As Double
Public pOutRub As Double
Public pOutDoll As Double
Public pOutEuro As Double
Public KursDoll As Double
Public KursEuro As Double
Public Sinput As Double
Public Sout As Double
Public Srub As Double
Sub Валюта()
pInRub = 1: pInDoll = 0: pInEuro = 0
ValCalc.InRub.Value = 1 'включить радиокнопку
pOutRub = 1: pOutDoll = 0: pOutEuro = 0
ValCalc.OutRub.Value = 1 'включить радиокнопку
KursEuro = 45.07
ValCalc.KrsEuro.Text = KursEuro
KursDoll = 30.62
ValCalc.KrsDoll.Text = KursDoll
Sinput = 0: Srub = 0: Sout = 0
ValCalc.InVal.Text = Sinput
ValCalc.OutVal.Text = Sout
ValCalc.Show
' MsgBox "входные " & pInRub & pInEuro & pInDoll _
& vbNewLine & "выходные " & pOutRub & pOutEuro & pOutDoll _
& vbNewLine & "KursEuro " & KursEuro _
& vbNewLine & "KursDoll " & KursDoll _
& vbNewLine & "вх.сумма " & Sinput _
& vbNewLine & "руб.сумма " & Srub _
& vbNewLine & "вых.сумма " & Sout
End Sub
