Часть 1. Основы Visual Basiс
На главную самоучителя
07.10.2004
Глава 2.
Основные объекты формы.
Кнопка, текстбокс, лейбл.
Скачать исходник примера "Калькулятор"

Использование кнопок, лейблов и текстбоксов. Программа "Калькулятор".

Итак, сейчас мы сделаем небольшую программу с использованием основных компонентов формы (объектов). Запустим VB. Создадим новый Exe-проект.
У нас откроется окно формы Проект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 станет "10" + "5" = 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(число). Вот весь код этой программы. Исходник этого примера “Калькулятор” можно скачать вверху страницы. Да, вот еще что. Если мы будем делить на ноль, программа аварийно прервется, и появится сообщение об ошибке. Как это преодолевать, т.е. перехватывать и обрабатывать ошибки , мы поговорим значительно позднее, в Главе 11. Перехват и обработка ошибок. Операторы On Error и Resume. Объект Err. Оператор GoTo.

‘****************************** НАЧАЛО***********************

Private Sub Command1_Click() ‘процедура нажатия кнопки Command1
Text3.Text = Val(Text1.Text) + Val(Text2.Text) 'операция сложения
Label2.Caption = "Плюс" 'указаваем в метке математическую операцию
End Sub

Private Sub Command2_Click() ‘процедура нажатия кнопки Command2
Text3.Text = Val(Text1.Text) * Val(Text2.Text) 'операция умножения
Label2.Caption = "Умножить"
End Sub

Private Sub Command3_Click() ‘процедура нажатия кнопки Command3
Text3.Text = Val(Text1.Text) - Val(Text2.Text) 'операция вычитания
Label2.Caption = "Вычесть"
End Sub

Private Sub Command4_Click() ‘процедура нажатия кнопки Command4
Text3.Text = Val(Text1.Text) / Val(Text2.Text) 'операция деления
Label2.Caption = "Разделить"
End Sub

Private Sub Command5_Click() ‘процедура нажатия кнопки Command5
Text1.Text = "" 'присвоим текстбоксам значение пустой строки
Text2.Text = "" 'для очистки всех текстбоксов
Text3.Text = ""
End Sub

Private Sub Command6_Click() ‘процедура нажатия кнопки Command6
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
Сайт создан в системе uCoz