Пособие-самоучитель
on-line
"Visual Basic с нуля"
|
|||
Глава 2. Основные объекты формы. | |||
Дата создания 07.10.2004 {Автор 4us} | |||
Итак,
сейчас мы сделаем небольшую программу с использованием наиболее употребимых
компонентов формы. Запустим VB. У на откроется окно формы Проект1 – Form1 (Form).
Слева, там где компонеты формы найдем командную кнопку (желтая подсказка CommandButton).
Щелкнем по ней, а потом мышь переведем на поле формы и нажав на клавишу мыши
растянем пунктирный прямоугольник до нужного нам размера. Отпустив клавишу мыши
мы увидим, что на форме появилась командная кнопка с надписью Command1 (Рис.5).
Справа, в окне свойств мы увидим свойства этой кнопки, так как выделена именно
она.
Рисунок 5.
Добавим на форму еще пять кнопок(Command), два лейбла(Label) и три текстбокса (TextBox). У тебя должно получится что-то вроде того (Рис.6)
Рисунок 6.
Попробуем из всего этого барахла сделать калькулятор. В окне свойств для каждой кнопки уберем в свойстве Caption надпись «Command…» и впишем для каждой кнопки соответсвенно +, -, * ,/, Очистить, Корень. Это будут названия наших кнопок. Теперь, чтобы надписи на кнопках читались лучше, в окне свойств щелкнем по свойству Font и в открывшемся окне Font выберем додходящий шрифт, размер и жирность. Вообще-то дизайн – это личное дело каждого и в дальнейшем я на этом подробно останавливаться не буду. Короче у тебя должно получиться что-то типа на рис. 7.
Рисунок
7.
Пора уже код писать, а мы все кнопочки двигаем. Поэтому перейдем теперь
к окну кодов (в верхней строке нажимаем «Вид» и выбираем «Код». В левом окне
Проект1 – Form1(Код), там где “(General)” из выпадающего меню выбираем строчку
Form. У нас появилась процедура загрузки формы, как в главе 1. Ну меняем заголовок
формы и убираем некрасивые записи в леблах и тексте. В теле процедуры пишем:
Form1.Caption
= "Калькулятор"
Чтобы вписать что-нибудь в Поле Text, нужно использовать свойство Text. У лейбла аналогичное свойство Саption.
Text1.Text = "" 'присвоим текстбоксам
значение
Text2.Text = "" 'пустой
строки
Text3.Text = ""
Label2.Caption = "Действие" 'Присвоим лейблам
Label1.Caption = "Результат:" 'соответствующие
значения
Теперь для каждой кнопки напишем свою подпрограмму для обработки каждого действия.
В поле (General) выбираем Command1. У нас появилась новая процедура для первой кнопки (у меня она соответствует «+»). Она очень похожа на процедуру формы, только событие здесь другое – нажатие кнопки (Click). Пишем строку для обработки операции сложения. Однако надо учесть, что в текстбоксах содержится строковая информация, а сложение двух строк приводит к их сцеплению, т.е. если в Text1 у нас будет 10, а в Text2 – 5, то результатом сложения в Text3 станет 105 (10 & 5), а не 15, как нам думалось. Поэтому нам придется преобразовать каждое значение в числовое с помощью функции Val(строка):
Text3.Text
= Val(Text1.Text) + Val(Text2.Text)
Кроме того, чтобы пользователь видел, какую операцию он произвел, изменим содержимое верхнего лейбла:
Label2.Caption
= "Плюс"
Используя стандартные операторы арифметических действий, создадим подпрограммы для всех кнопок.
На всякий случай я приведу основные математические операторы в табличке:
Оператор
|
Название
оператора
|
Пример
операции
|
Результат
|
+
|
сложение
|
c=2+5
|
с=7
|
-
|
вычитание
|
c=2-5
|
с=-3
|
*
|
умножение
|
c=2*5
|
с=10
|
/
|
деление
|
c=2/5
|
с=0,4
|
\
|
целая
часть от деления
|
c=2\5
|
с=0
|
Mod
|
остаток
от деления
|
c=2 Mod 5 c=9 Mod 4 |
c=
2 (5*0+2)
c= 1 (4*2+1) |
^
|
возведение
в степень
|
с=2^5
|
с-32
|
&
|
слияние
строк (конкатенация)
|
c=2
& 5
|
с=25
|
=
|
Оператор
присваивания, а никакое не “равно”
|
с=с+2
|
если
с было равно 5, то станет 7
|
Для того, чтобы кнопка Command6 выполняла извлечение квадратного корня используем функцию. Она будет выглядеть так: Sqr(число). Вот весь код этой программы. Исходник программы “Калькулятор” можно скачать вверху страницы. Да, вот еще, что. Если мы будем делить на ноль, программа аварийно прервется, и появится сообщение об ошибке. Как это преодолевать, мы поговорим несколько позднее.
‘******************************
НАЧАЛО***********************
Private Sub
Command1_Click() ‘подпрограмма нажатия кнопки Command1
Text3.Text = Val(Text1.Text) + Val(Text2.Text) 'операция
сложения
Label2.Caption = "Плюс" 'указаваем в
метке математическую операцию
End Sub
Private Sub Command2_Click()
Text3.Text = Val(Text1.Text) * Val(Text2.Text) 'операция
умножения
Label2.Caption = "Умножить"
End Sub
Private Sub Command3_Click()
Text3.Text = Val(Text1.Text) - Val(Text2.Text) 'операция
вычитания
Label2.Caption = "Вычесть"
End Sub
Private Sub Command4_Click()
Text3.Text = Val(Text1.Text) / Val(Text2.Text) 'операция
деления
Label2.Caption = "Разделить"
End Sub
Private Sub
Command5_Click()
Text1.Text = "" 'присвоим
текстбоксам значение пустой строки
Text2.Text = ""
Text3.Text = ""
End Sub
Private Sub Command6_Click()
Text3.Text = Sqr((Text1.Text)) 'функция вычисления корня
Text2.Text = "" 'очистка Text2, так как
он не нужен при этой операции
Label2.Caption = "Кв. корень"
End Sub
Private Sub Form_Load() ‘процедура
загрузки формы
Form1.Caption = "Калькулятор" 'меняем
заголовок формы
Text1.Text = "" 'присвоим текстбоксам
значение пустой строки
Text2.Text = ""
Text3.Text = ""
Label2.Caption = "Действие" 'присвоим лейблам
Label1.Caption = "Результат:" 'нужные
значения
End Sub
‘****************************** КОНЕЦ***********************
Пожалуйста, обратите внимание, что VB выполняет операторы не в том порядке, в каком они записаны в окне кода. Когда вы запускаете программу, загружается форма и наступает событие Form_Load. И все. Выполняются только те операторы, которые написаны в теле этой процедуры. После программа, грубо скажем, останавливается. Если же мы нажмем, например кнопку Command1, то возникает событие Command1_Click и выполняются операторы только в процедуре первой кнопки. Теперь вы можете сами доработать программу, поменять шрифты, расположение, добавить новые кнопки для новых математических операций.
Да, поскольку мы уже использовали математические функции “Извлечение квадратного корня” и “Преобразование строки в число”, я перечислю остальные:
Abs
(n) абсолютное значение n
Atn
(n) арктангенс n в радианах
Cos
(n) косинус угла n (n - в радианах)
Exp
(n) константа e в степени n
Rnd
(n) генерирует случайное число от 0 до 1
Sgn
(n) равно –1, если n<0; 0 если n=0; +1 если n>0
Sin
(n) синус угла n (n - в радианах)
Sqr
(n) квадратный корень n
Str
(n) преобразует число n в строку
Tan
(n) тангенс угла n (n - в радианах)
Val
(n) преобразует строку n в число
Copyright
© 2004 4us
|