2. Первый проект на Visual Basic

advertisement
Краткая характеристика и обзор сред программирования
Управлять компьютером нужно по определенному алгоритму. Алгоритм
– точно определенное описание способа решения задачи в виде конечной (по
времени) последовательности действий. Такое описание еще называют
формальным. Для представления алгоритма в виде, понятным компьютеру,
служат языки программирования. Сначала всегда разрабатывают алгоритм
действий, а потом он записывается на одном из таких языков. В итоге
получается текст программы – полное, законченное и детальное описание
алгоритма на языке программирования. Затем этот текст программы
специальными
служебными
приложениями,
которые
называются
трансляторами, либо переводится в машинный код, либо исполняется.
Языки программирования – искусственные языки. От естественных они
отличаются ограниченным числом «слов», значение которых понятны
транслятору, и очень строгими правилами записи команд (операторов).
Совокупность
подобных
требований
образуют
синтаксис
языка
программирования, а смысл каждой команды и других конструкций языка – его
семантику. Нарушение формы записи программы приводит к тому, что
транслятор не может понять назначение оператора и выдает сообщение о
синтаксической ошибке, а правильно написанное, но не отвечающее алгоритму
использование команд языка приводят к семантическим (логическим) ошибкам.
Процесс поиска ошибки в программе называется тестированием, процесс
устранения ошибки – отладкой.
В 50-е годы 20 века программы были написаны на машинном коде и
представляли собой очень длинные последовательности нулей и единиц. Затем
появились языки низкого уровня – ассемблеры. Для каждой машинной команды
были подобраны краткие слова, отражающие ее суть – мнемоники.
Например, для команды пересылки данных – MOV, для команды
сложения – ADD и т.д. Такие мнемоники намного легче запомнить, чем
двоичные, восьмеричные или шестнадцатеричные команды.
Такой язык ориентирован на конкретный тип процессора и учитывает его
особенности.С помощью языков низкого уровня создаются очень эффективные
и компактные программы, так как разработчики получают доступ ко всем
возможностям процессора. С другой стороны, при этом требуется очень
хорошо понимать устройство компьютера, затрудняется отладка больших
приложений, а результирующая программа не может быть перенесена на
компьютер с другим типом процессора. Подобные языки обычно применяют
для написания небольших системных приложений, драйверов устройств,
модулей стыковки и нестандартным оборудованиям, когда важнейшими
требованиями становятся компактность, быстродействие и возможность
прямого доступа к аппаратным ресурсам. В некоторых областях, например, в
машинной графике, на языке ассемблера пишутся библиотеки, эффективно
реализующие требующие интенсивных вычислений алгоритмы обработки
изображений.
В 60-70-е годы были созданы ЯП, кодирующие алгоритмы в привычном
для человека виде – в виде предложений. Такие языки ориентированы на
решение прикладных содержательных задач и являются языками высокого
уровня.
В 1963 году в Дартмурском колледже был создан язык программирования
BASIC (Beginners' All-PurposeSymbolicInstructionCode — многоцелевой язык
символических инструкций для начинающих). Язык задумывался в первую
очередь
как
средство
обучения
и
как
первый
изучаемый
язык
программирования.Было создано несколько мощных реализаций BASIC,
поддерживающих
самые
современные
концепции
программирования
(ярчайший пример — MicrosoftVisualBasic).
В 1975 году два молодых программиста Пол Аллен и Билл Гейтс
написали программу на языке BASIC, впервые использовав его для
программного обеспечения компьютера. Впоследствии они основали фирму
Microsoft.
В 1970 году Никлаусом Виртом в Цюрихе (Швейцария) был создал язык
программирования Pascal для обучения программированию. Это первый
широко распространенный язык для структурного программирования. С
распространением этого языка впервые появилось понятие о
программировании, как о проектировании программ, которое в дальнейшем
было развито другими языками и системами программирования.
В 1972 году в США был создан язык программирования C. Он создавался
как язык для разработки операционной системы UNIX. C часто называют
«переносимым ассемблером», имея в виду то, что он позволяет работать с
данными практически так же эффективно, как на ассемблере, предоставляя при
этом структурированные управляющие конструкции и абстракции высокого
уровня (структуры и массивы). Характерным недостатком языка стала
относительно высокая сложность изучения по сравнению с языками Паскаль и
Бейсик.
Язык Си++ был разработан в 1986 г. в США.
Си++ позволяет
создавать программы более компактные и эффективные, чем, например
Паскаль, но его изучение сложнее. Поэтому Си++ обычно изучают в
специализированных учебных заведениях, в которых готовят программистов.
В 1995 году в корпорации Sun в США был создан язык Java.
Он
объединял идеи C и C++ и был избавлен от некоторых неприятных черт
последнего.
В 1999-2000 годах в корпорации Microsoft был создан язык C#. Он в
достаточной степени схож с Java (и задумывался как альтернатива последнему),
но имеет и отличительные особенности. Ориентирован, в основном, на
разработку многокомпонентных Интернет-приложений.
1. Visual Basic - язык,
программирование
поддерживающий
событийно
управляемое
В 1991 г. корпорация Microsoft представила компьютерному миру Visual Basic.
Эта система программирования позволяла, "отстранившись” от сложнейшей
внутренней структуры Windows создавать в ней программы разной сложности.
Visual Basic - один из первых языков, поддерживающий событийно
управляемое
программирование (event-driven
programming).
Программирование традиционно ориентировалось на поэтапное описание
конкретного процесса, поэтому программный код во многом напоминал
кулинарный рецепт: "взять стакан муки, одно яйцо, стакан молока, добавить
сахар, хорошо перемешать и поставить в духовку на 20 минут”. Один из
недостатков такого стиля очевиден: тот, кто составляет рецепт (а у нас
программу) должен все сделать сам. Не дай бог забыть о какой-нибудь мелочи!
С таким недостатком можно смириться в кулинарии, но не при разработке
современных компьютерных приложений - они до того сложны, что всех
"мелочей” не предусмотришь.
В событийно-управляемом программировании вместо скрупулезного описания
каждого шага вы лишь указываете, как реагировать на различные события
(действия пользователя): выбор команды, щелчок кнопкой мыши в окне,
перемещение мыши. На одни события можно предусмотреть реакцию, другие
– просто проигнорировать. Вы создаете не одну большую программу, а
приложения Windows,
состоящие
из
набора
взаимодействующих
микропрограмм (процедур), управляемых пользователем. С помощью Visual
Basic такое приложение можно разработать достаточно быстро и без глубоких
профессиональных познаний и навыков.
Visual Basic пользуется успехом с момента выхода самой первой версии,
разошедшейся в десятках тысяч копий и получившей ряд призов от самых
авторитетных компьютерных журналов.
Весной 1992 г. вышла вторая версия этого языка с существенно расширенными
возможностями. Третья версия - это система программирования, вооруженная
множеством мощных инструментальных средств, вышла в 1993 г. Сейчас уже
выпущены четвертая, пятая и шестая версии Visual Basic. Каждая последующая
версия расширяет возможности и упрощает процесс создания приложений.
Мы начнем знакомство со средой Visual Basic и будем ориентироваться на
пятую и шестую версии языка, хотя с практически очень малыми изменениями
большинство примеров "пойдут” и в версиях 3 и 4.
2. Первый проект на Visual Basic
Лучший способ научиться программировать - это программировать, поэтому на
первом же уроке вы создадите первый очень простенький, но ваш
собственныйпроект на Visual Basic.
Как только вы вошли в Visual Basic, вы очутились в интегрированной среде
разработки Visual Basic (Integrated Development Environment) - Visual Basic IDE.
В центре Visual Basic IDE расположено окно дизайнера форм. Форма - это
основной элемент программы на Visual Basic. В этом окне вы будете
производить основные действия по созданию своей программы.
Слева расположена панель элементов, содержащая графические элементы
программы на Visual Basic, из которых будет строиться ваша программа.
Пиктограммы панели элементов представляют элементы управления.
Помещая элементы управления в форму, вы конструируете графическую часть
своейпрограммы. Графическая часть программы называется графическим
интерфейсом пользователя (Graphical User Interface - GUI).
Справа от окна форм расположено окно свойств. В окне свойств изначально
представлены свойства формы. Щелкнем на свойстве формы Name и
впечатаем в правом столбце значение frmFirst вместо Form1.
Никаких элементов управления на форме пока нет. Когда мы поместим на
форму элемент управления и сделаем его активным (щелкнув по элементу на
форме кнопкой мыши), тогда в окне свойств будут представлены свойства этого
элемента управления, а в первой строке окна будет написано его название.
Первый ваш проект будет построен с использованием двух элементов
управления: командной кнопки (command button) и метки (label) - поля,
заполняемого программистом текстовой информацией.
Дважды щелкните на пиктограмме Command Button в панели элементов, и
этот элемент очутится у вас на форме.
Дважды щелкните на пиктограмме Label, метка тоже окажется на вашей
форме.
Сделаем активной метку на форме, щелкнув на ней мышкой. Теперь окно
свойств
показывает
свойства,
соответствующие
метке.
Выберем
свойство Caption и присвоим ему значение "Мой первый проект на Visual
Basic!”, выберем размер шрифта с помощью свойства Font Size. Подгоним
размеры метки так, чтобы текст свободно располагался на ней.
Сделаем активной командную кнопку и зададим свойство Caption в окне ее
свойств: "выход”. Вот какой вид приблизительно должна принять ваша форма
после всех описанных с ней действий:
Щелкнув на командной кнопке, пользователь должен выйти из программы.
Для этого необходимо написать для командной кнопки простенький код. Два
раза щелкните на командной кнопке и вы попадете в окно кодов.
В этом окне вам нужно написать один единственный оператор END между
строкой
Private
End Sub.
Sub
Command1_Click и
строкой
Теперь, если пользователь щелкнет на командной кнопке (объект Command1,
событие Click) во время работы проекта, то он завершит свое выполнение.
Запустите свой проект, нажав клавишу F5 и вы увидите свой первый проект в
работе. Щелкните мышкой на командной кнопке и ваш проект прекратит свою
работу.
Проект готов. Вы проверили его в работе и решили, что пора бы уже
увековечить его на диске. Это весьма несложно. Найдите в меню File пункт Save
as… СначалаVisual Basic предложит вам сохранить форму, причем по
умолчанию даст то имя, которое вы задали ей в свойстве Name. Не
отказывайтесь. Файл с формой и кодами будет храниться под именем вашей
формы с расширением .frm. После того, как форма сохранена,Visual
Basic предложит вам записать на диск файл проекта и по умолчанию
предложит вам имя Project1.vbp. От этого предложения имеет смысл отказаться
и записать проект под именем, в котором учитывается соглашение об именах с
префиксом prj и содержательной частью, скажем prjMyFirstProject.
Таким образом на диске у вас окажется три файла: файл формы с
расширением .frm, файл проекта с расширением .vbp и еще один
вспомогательный файл с расширением .vbw. Ваш проект самый что ни на есть
простой, более сложные проекты могут содержать большее количество
файлов, поэтому мы советуем вам для каждого проекта заводить свою папку на
диске.
3. Понятие "свойств” в Visual Basic
Вы уже сделали свой первый проект на Visual Basic. Вы использовали форму в
качестве фундамента своего проекта, вы строили из элементов управления,
как из строительных блоков, программу на Visual Basic, вы задавали значения
свойств элементов управления и формы. Поговорим подробнее о свойствах
в Visual Basic.
В обыденной жизни вы можете спросить: "Какого цвета эта машина?”.
Соблюдая строгости Visual Basic, вам придется сформулировать свой вопрос
так: "Каково значение свойства <цвет> у этой машины?”. Ответ в обоих случаях
одинаковый: черный. Марка - это еще одно типичное свойство машины. Его
ожидаемые значения или параметры (settings) могут быть таковы: "Волга”,
"Лада”, BMW и т.д.
Каждый объект в Visual Basic обладает свойствами, значения которых
определяют поведение и внешний вид объекта в проекте.
Свойства (properties) в Visual Basic - это количественно измеряемый атрибут
объекта (в нашем случае элемента управления или формы).
Некоторые свойства ограничены определенными значениями. Например, у
объекта, обладающего свойством Visible ("видимость”), лишь два
значения: True(истина) - объект видим и False (ложь) - объект невидим. Другие
свойства могут иметь практически неограниченный набор значений, например,
название формы.
Нет необходимости описывать все свойства каждого объекта: в большинстве
случаев нас вполне устроят значения, установленные по умолчанию.
Значения свойств можно задавать на стадии проектирования в окне свойств.
Его (окно) можно активизировать по-разному: щелчком кнопки мыши гденибудь в окне, выбором из меню Window (окно) команды Properties,
клавишей F4 или щелчком кнопки Properties Window (окно свойств) на панели
инструментов.
Некоторые свойства имеют многие элементы управления, другие свойства
специфичны для одного элемента. Форма точно так же, как и элементы
управления, имеет свойства.
4. Пять свойства формы
Познакомимся с пятью свойствами формы, которые есть и у многих элементов
управления.
Caption (название) - это свойство содержит текст, выводимый в строку
заголовка окна формы
Name (имя) - это свойство определяет имя формы, изменять которое в период
выполнения программы нельзя. Компетентного и аккуратного программиста
отличает способность дать точное имя элементу управления и форме. Вы
должны так дать имя, чтобы была возможность распознать и тип элемента
управления и его назначение. Именно поэтому всегда стоит придерживаться
соглашения об именах. Следующее соглашение об именах используется для
идентификации элементов управления большинством программистов на Visual
Basic:
ctlName,
где ctl - префикс, определяющий тип элемента управления, а Name информативное с точки зрения функционального назначения имя элемента
управления. Первая буква в информативной части имени пишется с большой
буквы. Для форм принят префикс frm, для метки - lbl, для командных кнопок cmd. Префиксы пишутся со строчной буквы.
Допустимыми именами формы будут, например, имена: frmHello, frmPoem,
frmAddress.
Hight (высота), Width (ширина). Эти свойства определяют высоту и ширину
формы, измеряемые в твипах (twip). Один твип равен 0.0018см.
Все свойства, о которых мы вели речь, общие для многих элементов
управления. Следующее свойство специфично ей:
BorderStyle (тип границ). Это свойство принимает одно из значений,
описанных в следующей таблице:
Значение Стиль
Описание
0
None (нет)
Границы окна отсутствуют
1
Fixed
Single Окно
имеет
постоянный
размер,
(одинарная
определенный на этапе разработки,
фиксированная)
очерчивается одинарными линиями
2
Sizable
(масштабируемая)
Разрешается изменять размеры окна,
которое очерчивается двойными линиями
3
Fixed Dialog (двойная Окно
имеет
постоянный
размер,
фиксированная)
определенный на этапе разработки,
очерчивается двойными линиями
4
Fixed ToolWindow
Подобен стилю 3, но с более короткой
строкой заголовка окна и более мелкими
шрифтами для строки заголовка
5
Sizable ToolWindow
Подобен стилю 4, но допускает изменение
размеров окна с помощью перетаскивания
его сторон
Четвертое и пятое значения свойства есть только начиная с пятой версии Visual
Basic , предыдущие версии их не имеют.
5. Процедуры обработки событий
Любой объект можно связать с набором процедур, исполняемых в строго
определенные моменты. Процедура (procedure) - это группа операторов языка.
Исполняется процедура - исполняются ее операторы. Так или иначе, весь
составленный вами исполняемый код (executable code) обязательно
помещается в какую-нибудь процедуру.
Процедура, присвоенная объекту, связана с определенным событием (event) и
поэтому
называется процедурой
обработки
события (event
procedure).Событиями считаются, например, Click (щелчок кнопки мыши )
или Resize (изменение размера). События происходят только в период
выполнения программы (runtime), но не в период проектирования. Важно
отметить, что с одним объектом могут быть связаны несколько событий.
Когда, дважды щелкнув мышкой в окне формы, вы попадаете в окно ее кода,
обратите внимание, что окно кода имеет название. В названии присутствует
имя формы, что указывает на взаимосвязь кода и объекта. Код, который вы
введете в этом окне, будет храниться в том же файле, что и экранные объекты
формы.
Когда вы создали на вашей форме объекты, Visual Basic подготовил для этих
объектов набор процедур обработки событий по умолчанию. Процедуры по
умолчанию не делают ничего; они состоят лишь из объявления
процедуры (declaration) и оператора, помечающего конец процедуры (End Sub).
В объявлении процедуры ключевое слово Sub обозначает начало процедуры.
Первая часть имени процедуры должна соответствовать имени объекта,
который вы создали на форме ( или должно присутствовать слово Form, если
объектом является форма. Последняя часть имени должна включать имя
события (Click, DubleClickи.т.д.) Обе части следует разделять знаком
подчеркивания (_).
Ниже приведено окно кода формы Form1 и в нем одна процедура,
созданная Visual Basic по умолчанию:
6. Свойства формы Top и Left
Форма,
как
и
многие
другие
элементы
управления
имеет
свойства Top и Left. Эти свойства управляют позицией формы на экране,
определяя координаты верхнего левого угла ее окна.
Top - это позиция формы относительно верхнего края экрана.
Left - это позиция формы относительно левого края экрана. Координаты
измеряются в твипах.
7.Объект Screen
Прежде чем приступить к созданию следующего проекта сегодняшнего
познакомимся еще с одним объектом. Объект Screen - это экран вашего
монитора. Сегодня мы не будем говорить о нем подробно. Важно, что он
обладает свойством Height - высота экрана и свойством Width - ширина
экрана. Эти свойства вам понадобятся для вашего проекта.
8.Изменения местоположения формы в коде (проект prjMoveMyForm)
Попробуем менять местоположение формы в процессе выполнения проекта
(т.е. в коде).
Проект основан на форме с четырьмя командными кнопками. Кнопки
расположены в углах формы. Когда пользователь щелкает на кнопке формы,
она передвигается в соответствующую ей часть экрана. Результат
сопровождается резюмирующими сообщениями в метке в центре формы.
Когда вы создадите графический интерфейс пользователя своего проекта,
форма должна выглядеть примерно так:
Форму назовите frmMyForm, свойство BorderStyle задайте равное 1 (Fixed
Single). Метку назовите (свойство name) lblVar , значение свойства Captionметки
не задавайте (lbl –префикс метки). Кнопки назовите следующим образом
(свойству name присвойте значения):
cmdUpLeft - левую верхнюю;
cmdDownLeft - левую нижнюю;
cmdUpRight - правую верхнюю;
cmdDownRight - правую нижнюю, где
cmd - это префикс в названии командных кнопок.
Значения свойства Caption кнопок тоже не задавайте.
Как только форма загружается в память компьютера, перед тем, как она
появится на экране, всегда вызывается событие Load. Ответ на
событие Load можно запрограммировать с помощью процедуры Form_Load(
). Процедура Form_Load( ) является своего рода попыткой Visual Basic спросить:
"Не нужно ли при загрузке формы выполнить что-нибудь еще?” В нашем
проекте в этой процедуре мы установим значения свойств Caption для кнопок
команд, что поможет пользователю понять назначение каждой из этих кнопок.
Для того, чтобы в коде менять значение свойства некоего объекта, нужно
назвать его, называя сначала имя объекта, потом через точку его свойство и
присвоить ему значение.
Тогда процедура Form_Load( ) будет выглядеть следующим образом:
Private Sub Form_Load( )
cmdUpLeft.Caption = "ВлевоВверх”
cmdDownLeft.Caption = "Влево Вниз”
cmdUpRight.Caption = "ВправоВверх”
cmdDownRight.Caption = "ВправоВниз”
‘очистка поля с информацией о состоянии программы
lblVar.Caption = " ”
End Sub
Теперь нужно создать код для перемещения формы на экране. Этот код будет
добавлен в процедуры обработки событий Click для всех кнопок команд.
Для кнопки cmdBottomLeft при ее нажатии необходимо, чтобы нижний край
формы совпадал с нижним краем экрана. Тогда свойство Top формы будет
равно высоте экрана минус высота формы, т.е.
frmMyForm.Top = Screen.Height - frmMyForm.Height
Свойство Left формы должно соответствовать левому краю экрана, т.е.
frmMyForm.Left = 0
Тогда код для кнопки cmdBottomLeft обработки события Click будет выглядеть
следующим образом:
Private Sub cmdDownLeft_Click( )
frmMyForm.Top = Screen.Height - frmMyForm.Height
frmMyForm.Left = 0
End Sub
Составьте коды обработки события Click для других кнопок самостоятельно.
Кроме событий, инициируемых непосредственно пользователем, есть и другие
события, являющиеся прямыми или опосредованными следствиями действий
пользователя. Когда пользователь щелкает на командной кнопке, вместе с
событием Click вызываются
и
еще
несколько.
Одно
из
них
событие GotFocus для данной кнопки. При этом какой-то другой элемент
управления теряет фокус. Это означает вызов события LostFocus для
соответствующего элемента управления. Точно так же, как и
событие Click, события GotFocus и LostFocus инициированы
действием
пользователя.
Мы в нашем проекте обработаем события GotFocus для командных кнопок:
будем с помощью свойства Caption метки lblVar, сообщать, какая командная
кнопка в фокусе.
Тогда процедура события GotFocus для кнопки cmdUpRight будет иметь вид:
Private Sub cmdUpRight_GotFocus( )
lblVar.Caption = "Нажата клавиша UpRight”
End Sub
Самостоятельно составьте коды для следующих процедур:
Private Sub cmdUpLeft_GotFocus( )
End Sub
Private Sub cmdUpRight_GotFocus( )
End Sub
Private Sub cmdDownRight_GotFocus( )
End Sub
Private Sub cmdDownLeftt_GotFocus( )
End Sub
Запишите проект на диск под именем prjMoveMyForm.
9. Задания
А) Выполните проект, описанный в пункте 2 настоящего занятия. В качестве
значения свойства Caption метки можете взять произвольный текст, который
бы способствовал знакомству преподавателя с Вами.
Б) Доделайте на компьютере проект prjMoveMyForm, который описан в пункте
8 занятия.
Download