|
Visual Basic — основные сведенияDate: 2015-10-07; view: 382. Появление первой версии языка Basic датируется 1964 годом. До 1975 года язык Basic был реализован практически на всех типах ЭВМ, существовавших тогда в мире. Рост популярности языка происходил в 1976-1978г.г. одновременно с массовым распространением микроЭВМ и ПЭВМ. В первых конструкциях ПЭВМ интерпретатор языка Basic располагался в ПЗУ. Для тех конструкций ПЭВМ была характерна малая емкость оперативной и постоянной памяти. Это приводило к сращиванию в одном ПЗУ языка программирования и драйверов для устройств ввода-вывода. Таким образом, в зависимости от набора аппаратных средств ПЭВМ и емкости памяти ПЗУ число инструкций (команд, операторов, функций) языка сильно изменялось. Только в отечественных публикациях упоминается более трех десятков диалектов (разновидностей) языка Basic. Версия языка, известная под именем MBASIC, стала в конце 70-х — начале 80-х годов прошлого столетия промышленным стандартом и ее разновидности были разработаны фирмой Microsoft для многих восьмиразрядных микроЭВМ. В 1991 году для ПЭВМ типа IBM фирмой Microsoft была разработана версия языка, получившая название BAS1CA. Эта версия (и ее разновидности MSX-BAS1C, GW-BASIC и др.) была промышленным стандартом для целого ряда 16-ти разрядных ПЭВМ. Первой реализацией языка Basic в бывшем СССР была система программного обеспечения для ЭВМ типа М-220, разработанная в 1970-1971г.г. группой сотрудников под руководством Ю.Л.Кеткова. Наибольшими отличиями от ранних версий Бейсика обладали диалекты QuickBasic 4.5, QBasic, TurboBasic и PDS 7.1. Версия QBasic входила в состав операционных систем MS-DOS и поэтому имела достаточно широкое распространение. В своем развитии Basic шел от процедурного языка к языку объектно-ориентированного программирования (ООП). При этом разработка программы сводится к созданию графического интерфейса, на котором присутствуют объекты. Для каждого объекта составляется процедура, которая запускается от какого-то события, например, от нажатия кнопки. Рассмотрим важнейшие понятия ООП. Объект— модель некоторой реальной сущности, которая поддается хранению и обработке, способна воздействовать на другие объекты и вычислительную среду путем посылки сообщения и реагировать на принимаемые сообщения (например, менять свое состояние). Сообщение— совокупность данных определенного типа, передаваемых объектом-отправителем объекту-получателю. Получатель реагирует; (или не реагирует) на сообщение выполнением некоторой операции (метода). Методопределяется выполняемой объектом функцией, алгоритмом его работы. Состояние— совокупность всех свойств данного объекта. Свойства— перечень параметров объекта, которые определяют внешний вид и поведение объекта, выделяют уникальные особенности каждого экземпляра. К свойствам относятся: имя, тип, значение, цвет, размер и др. Свойства задаются с помощью переменных состояния. События — сигналы, формируемые пользователем, операционной системой или работающей программой. Типичными примерами событий являются перемещения и щелчки мыши, сообщения, поступающие от таймера и возникновении ошибок и т.д. Элемент управления— стандартный объект, используемый операционной системой для ввода информации (например, командная кнопка, переключатель, текстовое поле, включатель и т.д.). Класс— совокупность объектов с одинаковыми свойствами, то есть с одинаковыми наборами переменных состояния и методов. В основе ООП лежат три важных понятия: инкапсуляция, наследование и полиморфизм. Напомним их определения. Инкапсуляция— механизм скрытия (маскировки) всех внутренних деталей объекта, не влияющих на его внешнее поведение. Наследование— это процесс, посредством которого один объект может приобретать свойства другого объекта и добавлять к ним черты (свойства), характерные только для него. Полиморфизм— это свойство, которое позволяет одно и тоже имя объекта использовать для решения сразу нескольких разных задач (для задания общих действий для класса объектов). Другими словами: полиморфизм — это способность объектов выбирать внутреннюю процедуру (метод), исходя из типа данных, принятых в сообщении. Рассмотрим области использования языка. С помощью Microsoft Visual Basic (VB) можно совершенствовать приложения Microsoft Office, создавать приложения по технологии клиент-сервер и управлять базами данных. Пакет Visual Basic представляет coбой удобную среду для создания пользовательских интерфейсов (оболочек) при решении нестандартных задач (например, разработка контролирующей программы, браузера собственной конструкции и др.). Сильная сторона VB состоит в том, что он позволяет вызывать процедуры из готовых библиотек. Visual Basic позволяет создавать нестандартные элементы управления (называемые элементами управления на базе ActiveX, или кратко — Active X-элементами). ActiveX— представляет собой технологиюMicrosoft. Идея ActiveX состоит в том, что можно создать или загрузить из Интернет небольшой компонент, который увеличивает (расширяет) функциональные возможности операционной системы или некоторого приложения (например, браузера). При первом запуске программы Visual Basic 6.0 пользователь видит диалоговое окно «Новый проект» (на рисунке показан фрагмент диалогового окна). На диалоговом окне видны вкладки: New (Новый), Existing (Существующие), Recent (Недавние).
Щелчок по кнопке Открыть приведет к появлению следующего окна. Пользовательский интерфейс VB содержит стандартные элементы — вверху расположено главное меню, ниже — стандартная панель инструментов. Кроме того, на экране видны: слева — Окно Элементов (General), в центре Окно Формы (Form), справа вверху Окно Проектов (Project), справа внизу Окно Свойств (Properties). Форма представляет собой конструктор, на котором из готовых элементов собирают необходимый пользовательский интерфейс. Сетка, нанесенная на форму, облегчает выбор размеров объектов и их взаимное расположение. В конечном итоге в процессе проектирования форма превращается и стандартное окно операционной системы Windows.
Главное меню содержит пункты: File (Файл), Edit ( Редактирование), View (Вид), Project (Проект), Format (Формат), Debug (Отладка), Run (Запуск), Query (Запрос), Diagram (Диаграмма), Tools (Инструменты), Add-Ins (Надстройка), Window (Окно), Help (Помощь). Панель инструментов содержит кнопки, с помощью которых вызываются наиболее часто используемые команды. Наряду с типичными кнопками, которые используются во всех приложениях фирмы Microsoft, имеются специфические командные кнопки. На рисунке показаны (слева направо): списки Add Standard EXE Project (Добавить стандартный исполняемый проект), Add Form (Добавить форму) и кнопка Menu Editor (Редактор меню).
Рассмотрим еще одну группу кнопок, расположенных на стандартной панели.
Project Explorer (Окно Проектов), Properties Window (Окно Свойств), Form Layout Window (Окно местоположения формы), Object Browser (Брау-зер Объектов), Toolbox (Элементы управления). Data View Window (Окно просмотра данных), Visual Component Manager (Диспетчер компонентов). Следующие три кнопки предназначены для управления запуском и остановкой созданного приложения (программы):
Слева находится кнопка Старт, затем кнопки Пауза и Конец. В Окне Элементов (иногда его называют панелью элементов или панелью инструментов) располагаются объекты, которые могут устанавливаться на форму. Перечислим основные элементы управления, находящиеся в Окне Элементов. Pointer (Указатель), PicturcBox (Поле Рисунка), Label (Метка), TextBox (Поле Текста), Frame (Рамка), CommandBntton (Командная кнопка), ChcckBox (Включатель), OptiortButton (Переключатель), ComboBox (Комбинированное Поле), ListBox (Поле Списка), HscrollBar (Горизонтальная линия прокрутки), VscrollBar (Вертикальная линия прокрутки), Timer (Таймер), DrivcListBox (Список дисков), DirListBox (Список директорий), FilcListBox (Поле Списка файлов), Shape (Фигуры), Line (Линия), Image (Рисунок), Data (Данные), OLE. Рассмотрим порядок разработки простейшего калькулятора, внешний вид которого показан на рисунке. Калькулятор будет выполнять четыре арифметических действия с целочисленными переменными.
В диалоговом окне «Новый проект» следует выбрать пункт Standard. EXE. После щелчка по кнопке Открыть в центре окна появляется пустая форма (Form I) На форме нужно расположить 10 кнопок с изображением цифр от 0 до 9, а также кнопки сложения, вычитания, умножения, деления, сброса и равенства. Для этого в Окне Элементов (General) следует выбрать элемент управления — командную кнопку (Command Button) и отметить ее границы на форме. Затем, используя стандартные приемы копирования и вставки, подобает разместить на форме 16 заготовок для будущих кнопок. Размеры и местоположение кнопок изменяются с помощью стандартных приемов Drag and Drop. Используя элемент управления TextBox (Поле Текста), нужно разместить над группой кнопок прямоугольную рамку, в которой будут отображаться результаты вычислений на калькуляторе. Поочередно активизируя каждую кнопку, надлежит нанести на них названия кнопок (1,2,3,...+,=). Для этого нужно изменить свойства Caption (Заголовок) на соответствующие символы. Это выполняется в Окне Свойств. Для того чтобы при первом запуске калькулятора на индикаторе был виден ноль в текстовом окне (на форме Forml) следует заменить надпись Textl на цифру 0. С помощью Окна Свойства нужно задать местоположение текста на индикаторе калькулятора (сдвинуть цифры вправо). Для этого следует выбрать свойство Alignment (Выравнивание) в Окне Свойств. С помощью списка, расположенного в следующем столбце Окна Свойств, нужно выбрать свойство Right Justify (Выровнять вправо). На этом визуальное программирование заканчивается, далее следует формировать код (составлять программу). Методы (действия, выполняемые объектом) задаются с помощью процедур (подпрограмм и операторов-функций). Процедуры— это относительно самостоятельные фрагменты программы, оформленные особым образом и обозначенные именами. Процедуры помогают разбить программу на ряд независимых частей. При вызове процедуры вступает в действие последовательность операторов, которые находятся внутри этой процедуры. Для формирования кода надлежит в Окне Проектов (Project) щелкнуть по кнопке View Code (Просмотр кодов). В центре появится незаполненное окно редактора кода. Здесь подобает вначале записать три строки, которые определяют тип переменных. Dim buffer As Integer Dim open As String Dim fistt As Boolean После этого переменная buffer становится целочисленной, переменная oper — текстовой (символьной) переменной, а переменная fistt — булевой. Назначение этих переменных таково: переменная buffer будет использована для временного хранения вводимых чисел и результатов вычислений, переменная oper — будет запоминать, какая арифметическая операция должна выполняться, а переменная fistt будет фиксировать момент окончания ввода одного числа в калькулятор. Если переменная fistt будет иметь значение True (Истина), то это означает, что при нажатии кнопки показания индикатора будут заменяться числом, указанным на кнопке. Если переменная fistt имеет значение False (Ложь), то на индикаторе к имеющемуся числу в младший разряд будет дописана цифра, изображение которой находится на кнопке. После определения типа переменных целесообразно вернуться к изображению калькулятора, чтобы описать функции (то есть задать методы), выполняемые каждой кнопкой. Для этого нужно нажать кнопку View Object (Посмотреть объект), которая расположена в Окне Проектов. Далее, переходя от одной кнопки калькулятора к другой, надлежит задать функции, которые они выполняют. Ниже приведена подпрограмма загрузки формы. При загрузке формы переменная fistt получает нулевое значение True (Истина), то есть ноль на индикаторе можно заменить набираемой цифрой. Строка Private Sub Form_Load() является заголовком подпрограммы, а строка End Sub показывает место ее окончания. Имя подпрограммы — FormJLoad. Private Sub Form_Load() fistt = True End Sub Ниже приведен текст процедуры, фиксирующий момент нажатия кнопки с изображением цифры «1». Private Sub Commandl_Click() If fistt = True Then P Textl.Text =1 fistt = False Else Textl.Text = Str$(Textl.Text)+ "1" End If End Sub Рассмотрим назначение каждой строки составленной программы. Строка Private Sub Command l_Click() является заголовком подпрограммы. Имя подпрограммы — Commandl_Click. Строка End Sub показывает место окончания данной подпрограммы. Строка If fistt = True Then является заголовком блочного оператора условной передачи управления. Если условие, записанное в заголовке, выполняется, то на индикаторе появляется первая единица. Условием появления единицы является выполнение равенства fistt = True. В результате выполнения этого фрагмента программы переменная fistt получает булево значение False (Ложь). Если условие, указанное в заголовке оператора, не выполняется, то вычислительный процесс идет к группе операторов, расположенных после ключевого слова Else (Иначе). За счет этого на индикаторе добавляется новая единица к числу, набранному на предыдущих этапах работы калькулятора. Осуществляется это с помощью строки Textl.Text = Str$(Textl.Text) + "1". End If показывает место окончания оператора условного перехода. Аналогично построены остальные подпрограммы, которые служат для обработки информации при нажатии цифровых клавиш 2,3, 4 и т.д. Следующая подпрограмма используется для сброса показаний калькулятора в ноль при нажатии клавиши «С». Имя этой подпрограммы Commandl l_Click.
Commandl l_Click () Fistt = True Text 1.Text = 0 Buffer = 0 oper ="" End Sub В результате выполнения этой подпрограммы переменная fisst получает значение True (Истина), на индикаторе появляется 0, а переменные buffer и орег обнуляются. Следующая подпрограмма задает метод обработки информации при нажатии клавиши сложения «+». Имя этой подпрограммы — plus_Click. Private Sub plus_Click () If buffer <> 0 Then Call result Buffer = Val (Textl.Text) Oper ="+" Fistt = True End Sub С помощью оператора условной передачи управления If...Then проверяется содержимое буфера (переменная buffer). Если оно отлично от нуля, то вызывается подпрограмма с именем result. Она производит обработку введенной ранее информации и выполнение арифметического действия, указанного на предыдущем этапе работы. После этого в буфер помещается результат, полученный при работе данной подпрограммы, символьная переменная получает значение «+», а переменная fisst — логическое значение «Истина». Аналогично формируются подпрограммы обрабатывающие остальные арифметические операции. При нажатии клавиши «=» запускается подпрограмма, которая вызывает подпрограмму result и устанавливает значение переменной fistt = True. Private Sub result Click () Call result fistt = True End Sub Следующая подпрограмма определяет вид заданной пользователем арифметической операции и подсчитывает полученный результат, подпрограмме дано имя resul. Private Sub result () Select Case oper Case Is ="+" Textl .Text = buffer + Textl .Text buffer = 0 oper ="" Case Is ="-" Textl .Text = buffer - Textl .Text buffer = О oper ="" Case Is = "*" Textl .Text = buffer - Textl .Text buffer = 0 oper="" Case Is ="*" Textl .Text = buffer * Textl .Text buffer = 0 oper ="" Case Else End Select End Sub тат выбора зависит от значения символьной переменной орег. Такая конструкция называется распределителем. Причем, если переменная орег имеет значение «+», то выполняется строка Textl.Text = buffer + Textl.Text, то есть сложение содержимого индикатора и буфера. Если переменная орег имеет значение «-», то вычислительный процесс благодаря строке Case Is = "-" выполняет операцию вычитания: Textl .Text = buffer — Textl .Text и т.д. За счет строк buffer = 0 и орег = "" после выполнения арифметических операций происходит очистка буфера и значения переменной орег. End Select отмечает место завершения действия распределителя. Для того чтобы откомпилировать составленную программу нужно в меню File (Файл) выбрать пункт Make Calc.EXE. С помощью VB можно создавать оболочки для нестандартных приложений. Рассмотрим порядок создания простейшего браузера. Такой браузер позволяет набрать необходимый адрес (URL), перейти на предыдущую и последующую страницы, остановить процесс загрузки страницы, сигнализировать о текущем процессе загрузке страницы. С помощью диалогового окна Components — Компоненты (доступ к нему через главное меню: Project — Components) нужно установить элемент Microsoft Internet Control. Выбрав элемент WebBrowser, который появится в Окне Элементов, следует поместить его на форму. Так же на форму нужно установить 4 кнопки, один элемент ComboBox, Timer и один элемент Label. Для удобства программирования целесообразно переименовать элемент WebBrowserl, дав ему более короткое имя «www». Переименование производится в Окне Свойств (для этого используется свойство Name). Для определения кода нажатой клавиши нужно изменить свойство Forml KeyPreview на True. Ниже приведен текст подпрограммы, которая осуществляет переход по адресу, который указан в поле элемента ComboBox. Private Sub Combo 1_KeyPress(KeyAscii As Integer) Dim exis As Boolean exis = False IfKeyAscii= 13 Then www.Navigate Combo 1.Text For t = 0 To Combo 1 .ListCount If Combo 1 .List(t) = Combo 1 .Text Then exis = True Next If exis = False Then Combo l.Addltem Combo 1.Text, 0 End If End Sub В первой строке указано название подпрограммы. Во второй и третьей строках задан тип переменной exis и ее начальное значение. При нажатии клавиши Enter в объекте ComboBox 1 происходит переход браузера по введенному адресу, а затем проверяется наличие адреса в списке ComboBoxl. При отсутствии такого адреса он заносится в список. Обратите внимание, что в строке If KeyAscii = 13 Then записано число 13. В соответствии с кодовой таблицей это число соответствует коду клавиши Enter. В цикле For t=O....Next происходит проверка наличия введенного адреса в ранее составленом списке. Если такого адреса не обнаружено, то за счет строки If exis = False Then Combo l.Addltem Combo 1.Text, 0 адрес заносится в список. Следующая подпрограмма предназначена для возврата на предыдущую Web-страницу. Она запускается клавишей «<<». Private Sub Commandl_Click() On Error Resume Next www.GoBack End Sub Строка On Error Resume Next позволяет программе корректно обрабатывать ошибки, возникающие в процессе работы (например, при отсутствии предыдущей страницы). При возникновении ошибки программа игнорирует ее и продолжает свою работу. Следующая подпрограмма обеспечивает переход браузера на страницу вперед.
Private Sub Command2_Click() On Error Resume Next w w w. GoForward End Sub
Когда возникает необходимость остановить загрузку Web-страницы, в действие вступает подпрограмма:
Private Sub Command3_Click() www. Stop End Sub
Обновление страницы с помощью клавиши Refresh происходит благодаря следующей подпрограмме: Private Sub Command4_Click() On Error Resume Next www.Refresh End Sub
Ниже приведена подпрограмма периодической проверки окончания загрузки страницы и записи имени сайта в заголовке браузера.
Private Sub Timer l__Timer() If Me.Caption о "Internet Infusory " + www.LocationName Then Me.Caption = "Internet Infusory " + www.LocationName End If If www.Busy = True Then Label 1 .Caption = "Busy" Else Label 1.Caption = ""
End Sub Подпрограмма Timerl_Timer вызывается каждые 10 мс и позволяет постоянно контролировать состояние браузера. В случае если браузер «занят» (www.Busy=True) то Label I.Caption изменяется на «Busy» в результате чего на экране в месте, где находится Label 1 появляется надпись, показывающая пользователю, что браузер занят. Так же Timerl_Timer обновляет заголовок браузера, показывая пользователю имя сайта в Интернете.
|