Студопедия

Главная страница Случайная страница

Разделы сайта

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






Form2.Show






Теперь наш проект надо сохранить. Выбери “Файл – Сохранить проект” или нажми на изображение дискетки. Появиться окно сохранения проекта, которое обычно предлагает путь " C: \Program Files\Microsoft Visual Studio\VB98". Но туда сохранять ни в коем случае не надо, иначе файлы твоего проекта перпутаются с файлами Visual Basic. Лучше создать отдельную папочку с названием, которое отражает суть проекта и сохранить проект в ней. Так надо поступать с каждым проектом. Мы будем сохранять файлы под теми же именами, которые предлагает VB, хотя их, конечно, можно задавать какие угодно.

Последний этап – создание выполняемого (т.е. EXE) файла, то ради чего мы это все делали. Нажми “Файл – Создать Проект1.exe…”, сохраняй и готово. Теперь ты можешь закрыть VB и запускать свой EXE-файл. Поздравляю! Ты создал первую программу на Visual Basic. Вариант этой программы, только несколько расширенный, я привожу ниже. В ней показано изменение некоторых свойств формы. Скопируй ее в тело подпрограммы и поэкспериментируй с ней. Обрати внимание на комментарии. Они выделяются зеленым цветом и пишутся после апострофа. Нужны они только для пояснений, не компилируются и программой не выполняются.

'******вот некоторые возможности работы с формой*****

Private Sub Form_Load()
Form1.AutoRedraw = True 'включает перерисовку формы 1

Form1.BackColor = vbBlack 'меняет цвет формы 1 на черный
Form1.ForeColor = & HFF& 'меняет цвет текста формы 1 на красный
Form1.BorderStyle = 3 'меняет рамку (бордюр) формы 1 на неизменяемую
Form1.Font.Size = 18 'меняет размер шрифта формы 1 на 18
Form1.Font.Underline = True 'подчеркивает текст в форме 1
Form1.Caption = " Моя первая программа" 'устанавливает заголовок формы 1
Form1.Print " Я стану программистом" 'выводит текст на форму 1
Form2.Show 'делает видимой форму 2
Form2.Width = 9000 'устанавливает ширину формы 2 равной 9000 твипов
Form2.WindowState = 1 'сворачивает форму 2
End Sub

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

Итак, сейчас мы сделаем небольшую программу с использованием основных компонентов формы (объектов). Запустим 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 в число

 

 

Переменные. Инструкция Option Explicit.

Все, пора поговорить о переменных. Перегружать информацией я тебя не буду, но минимум знать надо.

Очень желательно, чтобы программа начиналась с инструкции Option Explicit в секции General. Эта инструкция заставляет программиста явно объявлять переменные. При ее отсутствии всякое слово, не противоречащее синтаксису VB, может быть переменной.
Что происходит, если мы не используем инструкцию Option Explicit? А то, что мы вообще можем не объявлять переменные. Это ведь здорово! А вот и нет! А почему нет, видно из следующего:

При отсутствии Option Explicit, если нам нужна новая переменная, мы просто вводим ее в код программы, например,

NewChislo=7

и опс, Visual Basic уже подсуетился и зарезервировал для переменной памяти, причем зарезервировал по полной программе - максимально. Дело в том, что если явно не задавать тип переменнной, VB считает переменную типом Variant, так как такая переменная может содержать почти любые данные: и целые, и дробные, и строковые. Зато и памяти эта переменная использует очень много. Если же мы явно объявим переменную и зададим ее тип сообразно с нашими потребностями, то рациональное использование памяти - на лицо.
Если тебя это соображение не убедило, то представим ситуацию, когда ты повторно используешь свою переменную для, например, изменения ее значения. И при этом делаешь опечатку (а опечаток делается очень много), пропускаешь букву h:

NewCislo=NewCislo+1

Для Visual Basic в этом никакой ошибки нет. Он при компиляции быстренько резервирует память под новую переменную NewCislo, считая ее типом Variant и у него никаких проблем. Проблемы у тебя. И критичные. Во-первых, ты имеешь ненужную переменную NewCislo со значением 1, о которой ты знать не знаешь. Во-вторых, если ты ожидаешь, что значение твоей начальной переменной NewChislo увеличилось на 1 и стало 8, то это совершенно напрасно. А вот ожидать, что результат выполнения твоей программы даст непредсказуемый результат можно смело.

Иное дело, если ты использовал инструкцию Option Explicit. В этом случае, при запуске программы, Visual Basic тут же найдет новую необъявленную переменную и остановит выполнение программы на строке с ошибкой.

Если я тебя убедил, тогда, чтобы не писать инструкцию Option Explicit в каждом новом проекте, нажми кнопку “Инструменты” (Tools), выбери “Опции” и в окрывшемся окне на вкладке “Редактор” поставь галочку напротив надписи “Требовать определение переменной”, потом OK. Теперь, всякий раз при создании нового проекта (но только нового, в старые эту инструкцию надо прописывать в (General) вручную.), VB сам, автоматически, будет прописывать Option Explicit.

Любое слово, кроме зарезервированных VB, можно сделать именем переменной. Но начинаться имя должно с буквенного символа. Например Peremenaia, Ima1, X, LastNumber, z001. Не надо использовать в именах математические операторы. И нельзя объявлять две переменные с одинаковыми именами. В принципе, для удобства чтения кода и солидности существуют определенные рекомендованные правила (что-то вроде стандартов) написания имен переменных. Но, так как использование этих правил - сугубо личное дело каждого, я их придерживаться не буду. Если охота, поищи в Интернете что-нибудь про Венгерское соглашение, Венгерскую нотацию или соглашение Реддика.

Итак, при явном объвлении переменной очень желательно явно задавать ее тип. В крайне редких случаях, когда тип хранимых данных в переменной заранее неизвестен, используется как раз тип Variant. В Visual Basic наиболее часто используются следующие типы данных (а соответственно переменных):

Long ‘длинное целое число со знаком от –2 147 483 648 до 2 147 483 647

Integer ‘целое число со знаком от –32 768 до 32767

String ‘строка символов

Boolean ‘логическое, принимает два значения или “True” (Истина) или “False” (Ложь)

Пока что нам этого хватит. Если интересно, то перечень типов данных, поддерживаемые VB, можно посмотреть здесь.

Теперь, где и как их объявлять. Если ты объявишь переменную в теле процедуры объекта, например кнопки, то доступна она будет только в этой процедуре. В другой, скажем, кнопке, ее использовать нельзя. Чтобы переменную использовать во всей форме, надо объявить ее в разделе деклараций (это в самом верху кода – (General) – (Declarations). Для этих случаев можно использовать инструкцию Dim. Ну, а чтоб она была доступна во всей программе (в разных, например, формах) она должна быть объявлена в стандартном модуле с ключевым словом Public. Но модулей мы пока не создавали и оставим это до поры в стороне. Ну вот, на первое время этого о переменных хватит. Чтобы было совсем понятно, вот пример объявления переменных:






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.