Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

azbuka_visual_basic

.pdf
Скачиваний:
37
Добавлен:
03.05.2015
Размер:
214.49 Кб
Скачать

Азбука Visual Basic

Часть 1

Предисловие

Нашёл я этот учебник на территории немецкого интернета где-то полгода назад, когда и мыслей о Азбуке VB ещё и в помине небыло. Но когда появился сайт, да и ещё и для начинающих у меня появилась мысль выложить эту книгу на сайте...

Но как я мог это сделать, когда книга была на немецком...? Ведь из всех посетителей всего пара процентов понимают язык арийцев, вот английский пожалуйста. Оставалось одно - перевести. И вроде бы хотелось это сделать, но у меня руки опускались, когда подумаю, что 140Kb текста дочитать трудно не то что переписать. Но, как говориться, глаза бояться - руки делают и я начал. Текст получился правда в некоторых местах неуклюжий и с ошибками, но это от того, что переводил я его с чужого языка и часто ночами.

Автор этого учебника - Marcus Hermann. Но, как ни странно, названия у него нет... Поэтому название я ему дал сам :). И кое-что мне пришлось изменить или дать комментарии. А ещё у меня появилась идея! А что если каждый, кому есть что-то добавить к этому учебнику напишет мне это с координатами куда это вставить? И автором этого учебника станет Азбука Visual Basic Team © :)! Т.е. учебник будет постоянно расти и обновляться за счёт посетителей! И каждый потом может гордится, что он является одним из соавторов Азбука Visual Basic Team ©. Что Вы думаете на этот счёт? Ну, ладно, теперь к содержанию!

Содержание

1.Из чего состоит VB-программа?

1.Как работают Windows-программы...

2. ...и как их программируют

2.Обращение с системой Visual Basic

1.Запуск, прерывание и окончание программ

2.Сохранение и загрузка проектов

3.Стандартное окно - Form

4.Окно свойств

5.Набор инструментов (ToolBox)

6.Окно Code

7.Окно Debug

8.Окно палитры

9.Окно проекта

3.Процедуры события

1.Процедуры - рецепты для компьютера

2.Событие Form_Load

3.Событие Click

4.Событие DblClick

4.Язык программирования Visual Basic

1.Команда Print

2.Графические команды

3.Переменные и константы

4.Свойства объектов

5.Команды со значениями (функции) 6.MsgBox, InputBox 7.Математические операторы

8.Выбор: If...Then

9.Комментарии строк (' или Rem)

10.Команда End

11.Цикл Do...Loop

12.Оператор GoTo

13.Генератор случайных чисел (Randomize, RND)

5.Важные свойства объектов

1.Свойство Name

2.Свойство Caption

3.Свойство Visible

4.Свойство Enabled

5.Свойство BackColor

6.Свойство ForeColor

7.Свойствa Left, Top

8.Свойствa Width, Height

6.Элементы управления и их свойства

1.Кнопки (Button)

2.Таймер

3.Линии и фигуры

4.Текстовое поле и поле надписи

5.Графическое поле

1. Из чего состоит VB-программа?

1.1 Как работают Windows-программы...

Если под Windows'ом запускается программа, на экране открывается её окно. Окна разных программ, конечно же, тоже различны, например различны по размеру, имеют различные формы, и на них видны различные вещи. Особенности, которые касаются самих окон, такие как размер, цвет, заголовки и т.д. называют свойствами окна. А вещи, которые видны на окне, в основном тексты, картинки, иконки, называют объектами или элементами управления. Каждый из этих объектов тоже имеет такие же свойства, как длина, ширина, цвет и т.д.

Если программа была запущена, и её окно было открыто, программа спокойно ждёт, пока что-нибудь не произойдёт, что, к примеру, будут нажаты кнопки, активировано меню и т.д. Когда это происходит, это называют событием. Для каждого события, которое только интересует нашу программу, програмисты (мы!) написали в языках программирования, как Basic, отдельные "кусочки" кодов, которые будут вызваны каждый раз, если событие "происходит"(событие процедуры). Со словом "процедура" у Вас ассоциировались, может быть, проверка самолёта пилотами перед стартом или ежегодные кофепития с заключительной игрой в минигольф на Дне Рождения у Дяди Альфонса... Короче, прецедуры - это процессы, которые, как один вид поваренного рецепта, всегда одинаковы. И примерно так это в программировании: процедуры это шаг-за-шагом исполняемые указания для глупого компьютера, который не может ничего другого, как слепо следовать простым командам - это, однако, очень быстро.

Итак, если, например, в программе рисования происходит событие - пользователь кликает в меню пункт "Сохранить" - будет исполнена процедура, которая состоит из команд, заставляющих компьютер сохранить в файл нарисованную картинку.

1.2 ... и как их программируют

Visual Basic-программа, так называемый проект, состоит из минимум одного окна (с определёнными свойствами), объектами и из многочисленных процедур событий для различных функций программы. С помощью Visual Basic делают программы примерно так: в них сначала создают окно с различными объектами и потом для каждого из них пишут процедуры, вдыхающие жизнь в серое окно. Это и есть собственно "программирование"...

2. Обращение с ситемой Visual Basic

2.1 Запуск, прерывание и окончание программ

Чтобы запустить, прервать или окончить работу со своей программой, можно использовать либо меню "Run" либо три иконки наверху окна VB, которые выглядят, как кнопки магнитофона. Программу можно также в любой момент остановить, нажав одновременно комбинацию кнопок Ctrl + Break. Это же произойдёт при нажатиии на иконку "Break", но это работает только тогда, пока программа только ждёт события. В обоих случаях можно продолжить с помощью иконки "Start". Однако если программа прервана таким образом, её можно изменять только в некоторых границах, а именно: можно изменять процедуры - написанные в VB коды, но не переключаться на различные объекты или изменять свойства: для этого нужно остановить программу с помощью третьей иконки "Stop". Узнать запущена ли или прервана ли или остановлена ли программа можно узнать, посмотрев на самый верх экрана - заголовок VB. После "Visual Basic" стоит там в угловатых скобках либо "run", если программа запущена, либо "break",если программа прервана или "design", если программа остановлена. Только если в заголовке стоит "design" можно изменять объекты и их свойства.

2.2 Сохранение и загрузка проектов

Чтобы уберечь свой с трудом созданный объект перед грустной смертью с выключением компьютера, нужно его прежде сохранить на жёстком диске или дискете. Сохранит проект можно, выбрав пункт "Save Project" в меню "File". Если вместо этого выбрать "Save Project As..." то можно сохранить проект под другим именем. Нужно знать, что Visual Basic сохраняет свой проект не в один единственный файл, а в минимум два: файл для окна, имя которого оканчивается на .frm и файл проекта, имя которого оканчивается на .vbp. Для каждого можно/нужно выдумать имя, которое должно состоять из минимум восьми букв. Внимание: если вместо "Save Project" Вы выберите "Save Form1", то сохранён будет только .frm-файл, и тогда программу иногда уже не удасться загрузить. Вобщем используйте только "Save Project", кроме техслучаев, когда Вы точно знаете, что Вы делаете!

Если нужно загрузить проект в следующий раз, нужно выбрать пункт меню "Open Project...", найти в появившемся окне имя нужного проекта и выбрать его. При последующем нажатии на ОК, проект будет загружен.

2.3 Стандартное окно - Form

Окно Form является началом вашей программы. Его можно двигать по экрану, увеличивать, уменьшать, менять его свойства в окне свойств, упорядочивать на нём объекты и в окне Code писать для него процедуры. Само окно тоже считается как объект, так сказать, "высший объект". Один из объектов всегда является "актуальным объектом", чьи свойства будут перечислены в окне свойств. Объект становится актуальным, когда на него кликнут. Узнают это чаще всего по обрамлению или по какой-нибудь другой маркировке.

2.4 Окно свойств

Здесь всегда перчислены свойства актуального объекта (см. выше). Свойство, представленное синим, может быть изменено в строке справа. Иногда нужно вносить данные самому, иногда можно выбирать из выпадающего списка, который отображён в строке справа в виде маленькой стрелки вниз. Заметьте, что при изменении свойств окна, изменения происходят синхронно.

2.5 Набор инструментов (ToolBox)

Здесь можно выбрать объекты, которые нужно поместить на форме. Например, чтобы нарисовать линию, кликните на символ линии. Теперь кликните на то место на форме, где должна начинаться линия и тяните мышь с нажатой кнопкой туда,

где эта линия должна кончаться. Отпустите кнопку мышки. Готово! Отдельные объекты будут описаны позже.

2.6 Окно Code

В окне Code пишутся процедуры события и другие Basic-конструкции. Окно Code назывется так потому, что тексты, написаные там называются на языке программирования именно "коды". Окно Code открывается тогда, когда производится двойной клик на объект, для которого должна быть написана процедура. Или если кликнуть в окне проекта на иконку "View Code". Сверху слева в окне Code стоит имя объекта, а справа его событие, для которого пишется его процедура. Т.е. сразу видно, когда команды, написанные здесь, будут выполнены. С помощью мышки можно выделять текст, над которым нужно провести с нажатой левой кнопкой. Когда курсор будет убран из строки, Visual Basic сразу же проверяет правильна и полна ли структура строки. Если нет, тут же появляется сообщение об ошибке.

Важнейшие комбинации клавиш в окне Code.

Ctrl+C Копировавние выделенного текста в буфер.

Ctrl+X Вырезание выделенного текста в буфер.

Del

Удаление выделенного текста.

Ctrl+V Вставка выделенного текста из буфера.

Ctrl+Z Отмена последнего действия.

Ctrl+Y Вырезание строки, на которой стоит курсор, в буфер.

F5

Запустить проект.

2.7 Окно Debug

Окно Debag, собственно, служит помощью в поиске и отлавливании ошибок в программных кодах (bugs - в компьютерном слэнге). Однако его также хорошо применять для проверки отдельных маленьких Basic-команд. Это окно появляется каждый раз при запуске вашего приложения снизу справа. Если программа прервана, это окно появится поверх всех окон и в нём появится курсор. Прямо здесь можно вводить строки и клавишей ENTER давать команду на исполнение этих строк, которые будут сейчас же выполнены. Команда Print (см. ниже) пишет в этом случае не в окно, а прямо под командной строкой в окне Debug, что тоже очень практично - [мои прим.: что имеет в виду здесь автор мне совершенно не понятно, возможно идёт речь о ранних версиях VB].

2.8 Окно палитры

Если нужно изменить цвет какого-нибудь объекта, нужно сделать двойной клик по соответствующему свойству "цвет" в окне свойств. Должна появиться палитра цветов со стандартными цветами, из которых нужно выбрать один. Если Вам не

нравятся предложенные там цвета и Вам нужен зелёный или красный, Вы можете кликнуть на вкладку 'Palette' и довольствоваться тем, что там есть.

2.9 Окно проекта

Это окно нужно только тогда, когда пишутся сложные программы, которые, к примеру, состоят из многочисленых окон. Тогда с помощью этого окна можно переключаться между отделными окнами. Мы это окно применять пока не будем. Если Вам вдруг не видно вашу форму кликните в окне проекта на кнопку "View Object" - окно появится вновь.

3. Процедуры события

3.1 Процедуры - рецепты для компьютера

ВBasic'e процедуры начинаются с команды Sub, потом идёт имя процедуры и (). Оканчиваются процедуры командой End Sub (англ. subroutine: подпрограмма). Между этим стоят команды, принадлежащие этой процедуре. Они будут, при вызове процедуры, следовать одна за другой.

Вбольшинстве своём процедуры - это процедуры события: для каждого события, на которое должна реагировать программа, нужно писать процедуру. Причём Sub, имя процедуры, () и End Sub будут заданы самим Basic'ом.

3.2 Событие Form_Load

(англ. load: загружать) Процедура события Form_Load выполняется каждый раз при запуске вашего приложения прежде, чем окно появится на экране. Поэтому бесполезно уже в этой процедуре что-либо писать в окне или рисовать (например Print), т.к. это просто не будет сделанно. Окна-то ещё нет!

3.3 Событие Click

Событие Click происходит в том случае, если на объекте кликнуть левой кнопкой мыши. Если, к примеру, пользователь щёлкнет на одном из элементов управления, событие Click этого объекта будет тут же исполнено. Можно кликнуть по форме - для этого имеется событие Form_Click, которое может содержать различные процедуры.

3.4 Событие DblClick

Это событие происходит при двойном клике мышкой на каком-либо объекте. Внимание: ещё при первом нажатии произойдёт событие Click, но при мнгновенном втором уже нет.

4. Язык программирования Visual Basic

4.1 Команда Print

(англ. print: печатать)При помощи команды Print можно из какой-нибудь процедуры печатать тексты на форме. Текст должен при этом стоять в кавычках

("). Пример:

[мои прим.: тексты в кавычках не мои и переведены почти дословно :-))))]

Print "Эй, перед монитором! Привет!"

Пишет на окне:

Эй, перед монитором! Привет!

Команду Print можно применять также для решения:

Print "413 + 512 равно"

Print 413 + 512

Выдаёт на форме:

413 + 512 равно

925

Всё, что стоит после команды Print в кавычках, при выполении компьютером, будут буква за буквой, цифра за цифрой и знак за знаком точно также "списаны". А всё, что стоит позади команды, не в кавачках, должно быть написано программным языком Basic - это будет "переведено" компьютером. Так, к примеру, 413 + 512 для компьютера значит "результат сложения 413 плюс 512". И этот результат должен быть при помощи команды Print напечатан. Поэтому там и стоит "925".

При помощи команды Print можно также печатать значения свойств или переменных

(cм. ниже):

Print Form1.Caption

Пишет именно то, что стоит в его заголовке, т.к. Form1.Caption означает для компьютера "значение свойства надписи окна с именем Form1". Ну, а что будет напечатано командой

Print "Form1.Caption" ?

И ещё три заметки к этой команде:

1.Деление и умножение в Basic'e производится при помощи звёздочки (*) и слэша

(/). Кроме того компьютер понимает нецелые числа, однако вместо запятой нужно применять точку, как в Англии и США.

Print 8 / 2

Print 3 * 2.5

выдаст:

4

7,5

Однако в результате, который будет выдан, число 7,5 будет написано с запятой! Только в самих Basic-кодах нужно применять точку.

2.Если нужно распечатать несколько вещей в одной строке, то их нужно перечислить всех после команды Print через точку с запятой (;):

Print "1 + 1 всё ещё равно "; 1 + 1;

Print ", а три умножить на нуль равно "; 3 * 0

получим:

1 + 1 всё ещё равно 2, а три умножить на три равно 0

3.Если нужно напечатать текст не с начала строки, можно использовать указание Tab(...). Текст будет напечатан, как и стоит после Tab в скобках:

Print Tab(10) "Кое-что неопровержимо: мяч круглый!"

Print Tab(10) "Ха-ха!"; Tab(30) "Прфффффц!"

Получим на экране:

Кое-что неопровержимо: мяч круглый! Ха-ха! Прфффффц!

Между "Ха-ха!" и левым краем 10 пробелов, а между "Прфффффц!" и левым краем

(!) 30 пробелов. Внимание: символы на мониторе по-различному широкие, и W

шире, чем i. Поэтому между позицией 10 и позицией 30 необязательно поместятся 20 букв!

4.2 Графические команды

При помощи графических команд можно создавать по-настоящему красивые рисунки

ввашем приложении [мои прим.: у каждого свои вкусы и запросы - у кого брилианты слишком мелкие, а у кого суп слишком жидкий...]. Чтобы "объяснить"

вцифрах компьютеру что и куда он должен писать используют координаты.

Обращение с координатами Вы будете учить в этом курсе.

Расстояния на мониторе, в Visual Basic измеряются не в сантиметрах, а с помощью специальной единицы измерения "твип". Один твип - это очень маленькое расстояние: взгляните на форму в режиме "design" - она вся изрисована серыми точками. Так вот от точки до точки помещается 120 твипов!

Итак, чтобы начертить линию на форме, нужно задать координаты её начала и конца. Пример:

Line (1000,1500)-(5000,1500)

Line (начальная точка)-(конечная точка)

Этой командой будет нарисована горизонтальная линия, т.к. начальная точка и конечная точка имеют одинаковое расстояние к верхнему краю окна (1500 твипов). Начало линии - 1000 твипов от левого края формы, а конец линии на 5000 твипов. Всего линия 4000 твипов длиной.

Если нужно, можно задавать ещё и цвет, в котором надо рисовать (чёрный цвет стоит по умолчанию). Для этого однако нужно знать, как Windows обращается с цветами: в компьютере имеется для каждого цвета, которые он "знает", просто одно число, т.к. числа, как известно, компьютер может обрабатывать особенно хорошо. Но для нас труднее понять, что светло-коричневый цвет соответсвует числу 8887245, поэтому в бэйсике имеется "компромисс": GRB-функция. Этим компьютеру "объясняют", как должны смешиваться цвета. В телевизорах и компьютерных мониторах каждый цвет - это смесь из красного, зелёного и синего цвета. В каждом цвете разное содержание каждого из них. Однако это смешивание не действует, как в ящике с красками: если, например, смешать одинаково много синего, зелёного и красного, можно получить серый цвет.

Line (1000,1500)-(5000,3000), RGB(255,0,0)

Этим рисуется красная диагональная линия. Цвет описан с помощью RGB-функции, где отдельно задаётся каждый цвет (в пределах от 0 до 255). По этому принципу можно достигнуть любого цвета. Давайте я покажу, как это делается.

Важные цвета:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

цвет

 

R(ed)

 

G(reen)

 

B(lue)

 

цвет

 

R

 

G

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

черный

 

0

 

0

 

0

 

жёлтый

 

255

 

255

 

0

 

 

 

 

 

 

 

 

 

белый

 

255

 

255

 

255

 

фиолетовый

 

255

 

0

 

255

 

 

 

 

 

 

 

 

 

красный

 

255

 

0

 

0

 

коричневый

 

205

 

155

 

135

 

 

 

 

 

 

 

 

 

зелёный

 

0

 

255

 

0

 

оранжевый

 

255

 

128

 

0

 

 

 

 

 

 

 

 

 

синий

 

0

 

0

 

255

 

серый

 

128

 

128

 

128

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Итак, например, оранжевый цвет в бэйсике называется RGB(255,128,0).

Если нужно нарисовать прямоугольник, для этого хватит всего одной Lineкоманды, в которой вместо начальной и конечной точки нужно задать координаты левого верхнего и правого нижнего угла прямоугольника, и после цвета вписать ещё ", B" (В, потому что прямоугольник на английском называется box):

Line (1000,1500)-(5000,3000),RGB(255,0,0),B

чертит вместо линии прямоугольник из красных линий. Можно также "прицепить" за "B" букву "F". Тогда прямоугольник будет заполенен краской. Если Вы не хотите задавать цвет, обе запятые писать нужно всё-равно: при помощи команды

Line (1000,1500)-(5000,3000),,BF

Будет начерчен чёрный, заполненый прямоугольник. Будьте внимательны и не пропускайте запятые между которыми мог бы стоять цвет!

Рисовать круги компьютер может, конечно же, тоже! Для этого имеется команда Circel. К этому нужно, конечно, добавить где и каким размером должен быть круг. Для этого описывают сначала координаты середины круга, и потом задают величину круга - его радиус в твипах. Кроме того можно устанавливать цвет круга.

Circle (3000,4000),2000,RGB(0,190,0)

компьютер рисует тёмно-зелёный круг с радиусом 2000 твипов и серединой с координатами (3000,4000).

Также можно рисовать отдельные точки, а именно при помощи команды PSet:

PSet (1000,500),RGB(255,128,0)

рисует оранжевую точку с координатами (1000,500). Цвет, как и во всех других командах, можно тоже убирать.

И, наконец, ещё одна важная команда: при помощи команды Cls можно всё, что было прежде нарисовано или написано командами PSet, Line, Print или Circle просто стереть. Если на форме находятся какие-нибудь объекты, они при этом стёрты не будут. Имя Cls происходит из ангийских слов clear screen: очистить экран.

4.3 Переменные и константы

Константы - это просто имена для цифр или набора символов. После написания программы, её будет намного проще читать, понимать, если, например, повсюду, где есть число pi (pi = 3,14159...), действительно стоит Pi, а не каждый раз цифры 3.14159. Поэтому в начале процедуры пишут:

const PI = 3.14159

и если где-нибудь позже будет написано:

Print 2 * PI

компьютер заменит Pi нужным числом и выдаст

6,28318

на форме. Между VB-программистами принято константы писать всегда только большими буквами, чтобы их можно было отличить от переменных.

Переменные намного важнее констант, возможно даже важнейшая часть программирования. Переменные и константы вообще-то почти одно и тоже, кроме одного различия: значение переменной - числа или символы - в ходе программы могут быть изменены. Если к примеру в программе-игре имеется переменная Punktzahl, содержащая определённое кол-во пунктов, где-нибудь можно написать:

Punktzahl = 1000

и для всех команд, которые появятся после этого, переменная Punktzahl будет всегда равна числу 1000 - пока возможно не появится комманда "Punktzahl = 1001". Punktzahl называют именем переменной, и 1000 в этом примере является её значением. Команду "Punktzahl = 1000" называют присвоением: переменной Punktzahl будет присвоено значение 1000.

Переменные могут содержать не только числа и символы, но и даты, время и т.д. Если UserName, BirthDay и EndOfTime переменные, тогда можно написать:

UserName = "John"

(здесь очень важны кавычки, т.к. иначе компьютер подумает, что John тоже является переменной!)

BirthDay = #29.10.1970#

EndOfTime = #8:30#

(как символы выделяют кавычками, так дату или время выделяют символoм "#"). Дату и время можно поместить в одну переменную:

DateAndTime = #13.2.1994 11:30#

И если после этого в программе появится команда

Print UserName; " должен "; DateAndTime;

Print " к зубному врачу!"

компьютер напишет на форме:

John должен 13.02.1994 11:30:00 к зубному врачу!

Важно: Если в программе нужно применять переменную, её нужно прежде объявить (для этого используется слово продекларировать), а именно в отведённом для этого месте кода. Найти это место можно в окне Code, кликнув вверху слева, где стоят объекты, и в появившемся меню выбрать "(General)". В обоих верхних полях высвятятся надписи "(General)" и "(Declarations)". На этом месте должна была бы стоять строка "Option Explicit". Здесь нужно описать все переменные, которые будут использоваться в программе, а именно с ключевым словом Dim. Например, если нужна переменная Punktzahl, то нужно вписать следующее:

Dim Punktzahl

Команда Dim сообщает компьютеру: создай переменную с именем, которое следует после Dim. Внимание: переменная не получает при этом никакого значения, и его можно присвоить внутри какой-нибудь процедуры.

И ещё кое-что об именах переменных: имена перменных в Visual Basic могут состоять только из 40 букв, цифр и символа "_" (на клавиатуре находится под тирe "-"). Однако начало имени должно быть буквой! Кроме того нельзя применять слова зарезервированые бэйсиком, как имена переменнных, т.к. иначе компьютер всё перепутает... Если это случится просто из-за невнимательности и Вы применили зарезервированное слово, это легко можно будет определить, т.к. слово станет синим, как только курсор переместится на другую строку. Тогда нужно выдумать какое-нибудь другое имя перменной.

Примеры для возможных имён перменных:

Appel; Level42; PunktZahl;

Punktzahl_die_der_Spieler_erreicht_hat; Hui_Buh

Примеры для невозможных имён перменных:

4gewinnt

(начинается

числом)

Name

(ключевое слово бэйсика)

Hui Buh

(состоит из

двух слов)

Hoechste_Punktzahl_die_je_ein_Spieler_erreicht_hat

 

(длиной больше сорока символов)

Stan&Ollie

(содержит недопустимый символ)

4.4 Свойства объектов

Свойства объектов имеют много общего с переменными: так, например, они тоже имеют имя (к примеру Form.Caption) и значение (к примеру "Моя первая программа V2.0b"). Большинству из них можно также присваивать значения в ходе программы:

Form.Caption = "Теперь здесь стоит что-то другое..."

впечатляет, когда вдруг в заголовке окна вдруг появляется что-нибудь другое! Кроме того, можно кругом, где только могут стоять имена переменных, подставлять их имена:

Соседние файлы в предмете Информатика