Для серьзных отношений / Знакомство с basic

Знакомство с basic

Занятие 1 “ Первое знакомство с Visual Basic”

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

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 Sub Command1_Click и строкой
End Sub.

Теперь, если пользователь щелкнет на командной кнопке (объект Command1, событие Click ) во время работы проекта, то он завершит свое выполнение.

Запустите свой проект, нажав клавишу F5 и вы увидите свой первый проект в работе. Щелкните мышкой на командной кнопке и ваш проект прекратит свою работу.

Проект готов. Вы проверили его в работе и решили, что пора бы уже увековечить его на диске. Это весьма несложно. Найдите в меню File пункт Save as… Сначала Visual Basic предложит вам сохранить форму, причем по умолчанию даст то имя, которое вы задали ей в свойстве Name. Не отказывайтесь. Файл с формой и кодами будет храниться под именем вашей формы с расширением.frm. После того, как форма сохранена, Visual Basic предложит вам записать на диск файл проекта и по умолчанию предложит вам имя Project1.vbp. От этого предложения имеет смысл отказаться и записать проект под именем, в котором учитывается соглашение об именах с префиксом prj и содержательной частью, скажем prjMyFirstProject.

Таким образом на диске у вас окажется три файла: файл формы с расширением.frm, файл проекта с расширением.vbp и еще один вспомогательный файл с расширением.vbw. Ваш проект самый что ни на есть простой, более сложные проекты могут содержать большее количество файлов, поэтому мы советуем вам для каждого проекта заводить свою папку на диске.

Понятие “свойств” в 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 :

где ctl - префикс, определяющий тип элемента управления, а Name - информативное с точки зрения функционального назначения имя элемента управления. Первая буква в информативной части имени пишется с большой буквы. Для форм принят префикс frm, для метки - lbl, для командных кнопок - cmd. Префиксы пишутся со строчной буквы.

Допустимыми именами формы будут, например, имена: frmHello, frmPoem, frmAddress.

Hight ( высота), W >ширина). Эти свойства определяют высоту и ширину формы, измеряемые в твипах (twip ). Один твип равен 0.0018см.

Все свойства, о которых мы вели речь, общие для многих элементов управления. Следующее свойство специфично ей:

BorderStyle ( тип границ). Это свойство принимает одно из значений, описанных в следующей таблице:

Значение

Стиль

Описание

None (нет)

Границы окна отсутствуют

Fixed Single ( одинарная фиксированная)

Окно имеет постоянный размер, определенный на этапе разработки, очерчивается одинарными линиями

Sizable ( масштабируемая)

Разрешается изменять размеры окна, которое очерчивается двойными линиями

Fixed Dialog ( двойная фиксированная)

Окно имеет постоянный размер, определенный на этапе разработки, очерчивается двойными линиями

Fixed ToolWindow

Подобен стилю 3, но с более короткой строкой заголовка окна и более мелкими шрифтами для строки заголовка

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 - это позиция формы относительно левого края экрана. Координаты измеряются в твипах.

Прежде чем приступить к созданию следующего проекта сегодняшнего познакомимся еще с одним объектом. Объект 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( )

cmdDownLeft.Caption = “ Влево Вниз”

‘ очистка поля с информацией о состоянии программы

Теперь нужно создать код для перемещения формы на экране. Этот код будет добавлен в процедуры обработки событий Click для всех кнопок команд.

Для кнопки cmdBottomLeft при ее нажатии необходимо, чтобы нижний край формы совпадал с нижним краем экрана. Тогда свойство Top формы будет равно высоте экрана минус высота формы, т.е.

frmMyForm.Top = Screen.Height - frmMyForm.Height

Свойство Left формы должно соответствовать левому краю экрана, т.е.

Тогда код для кнопки cmdBottomLeft обработки события Click будет выглядеть следующим образом:

Private Sub cmdDownLeft_Click( )

frmMyForm.Top = Screen.Height - frmMyForm.Height

Составьте коды обработки события Click для других кнопок самостоятельно.

Кроме событий, инициируемых непосредственно пользователем, есть и другие события, являющиеся прямыми или опосредованными следствиями действий пользователя. Когда пользователь щелкает на командной кнопке, вместе с событием Click вызываются и еще несколько. Одно из них - событие GotFocus для данной кнопки. При этом какой-то другой элемент управления теряет фокус. Это означает вызов события LostFocus для соответствующего элемента управления. Точно так же, как и событие Click, события GotFocus и LostFocus инициированы действием пользователя.

Мы в нашем проекте обработаем события GotFocus для командных кнопок: будем с помощью свойства Caption метки lblVar, сообщать, какая командная кнопка в фокусе.

Тогда процедура события GotFocus для кнопки cmdUpRight будет иметь вид:

Private Sub cmdUpRight_GotFocus( )

lblVar.Caption = “ Нажата клавиша UpRight”

Самостоятельно составьте коды для следующих процедур:

Private Sub cmdUpLeft_GotFocus( )

Private Sub cmdUpRight_GotFocus( )

Private Sub cmdDownRight_GotFocus( )

Private Sub cmdDownLeftt_GotFocus( )

Запишите проект на диск под именем prjMoveMyForm.

А) Выполните проект, описанный в пункте 2 настоящего занятия. В качестве значения свойства Caption метки можете взять произвольный текст, который бы способствовал знакомству преподавателя с Вами.

Б) Доделайте на компьютере проект prjMoveMyForm, который описан в пункте 8 занятия.