Расширение лексики языка программирования. Для объявления подпрограмм и функций, доступных или не доступных из других модулей проекта, введены дополнительные служебные слова при объявлении процедур: Public и Private соответственно. Visual Basic 4.0 “прихватил”теперь кусочек Pascal, добавив ксвоему лексическому запасу выражения “With”, ”For Each”, а также добавлены новые типы данных - Byte (простое беззнаковое, для представления чисел в диапазоне 0-255), Вооlean 16 битовые (2-байта) числа, которые могут принимать только два значения: True или False) и Collection. Collection позволяет построить собственную группу пронумерованных объектов. Использование Collection более предпочтительно, чем использование массивов вследствие большей гибкости индексов, и наличия наследуемых методов для вставляемых и удаляемых объектов коллекции.
Процедуры свойств (property procedures).Появилась возможность создавать для объектов (форм, стандартных модулей и модулей классов) собственные специализированные свойства (properties), и привязывать к ним выполняемый код, который будет вызываться при обращении к свойству.
Расширяемость оболочки программирования. Оболочка разработки (IDE) самого Visual Basic 4.0 также может быть управляем через ОLЕ Automation, что позволяет ОLЕ приложениям создавать и размещать в специальное меню Add-InVisual Basic 4.0 свои команды, расширяя таким образом возможности IDE.
Создание ОLЕ Objekt приложений и классы (Сlasses). Одной из основных претензий к Visual Basic со стороны профессиональных программистовслужило отсутствие средств создания готовых модулей для последующего использования. Программист вынужден был обращаться к С, С++, Раsсаl или другим языкам программирования для создания DLL ивызовам функций DLL из программы на Visual Basic или, например, из приложения Microsoft Office. С выходом Visual Basic 4.0 данная ситуация коренным образом изменилась, программисты могут создать объекты ОLЕ Automation.Библиотеки подобных объектов, каждый со своими характеристиками и методами управления, могут быть использованы из любого приложения, имеющего возможность контролировать приложение, являющееся ОLЕобъектом (OLE Object Application).
По определению, такие объекты названы классами (Claases) - (эту часть языка Visual Basic взял от С++) и располагаются в специальных модулях (class module). Для совместимости с программами, реализованными в третьей версии и использующими VВХ из стандартного набора, Visual Basic 4.0 включает ОLЕ Custom Control (OCX), заменяющие эти VВХ. При вызове проекта программы, разработанной в среде предыдущей версии Visual Basic и использующей один из стандартных VBX предложит автоматически преобразовать ссылки на новые ОСХ. Такие приложения, как Microsoft Excel для Windows, Microsoft Word для Windows и другие, являющиеся ОLЕприложениями,теперь можно вставлять в Окно Инструментария (ТооlBох) как обычные элементы управления.
Таким образом можно сказать об некоторой универсальности Visual Basic для создания приложений для Windows.
2. РАЗРАБОТКА СТРУКТУРНОЙ СХЕМЫ И АЛГОРИТМОВ ПРОГРАММЫ
2.1. Функциональная схема работы Windows 95
Операционная система должна обеспечивать взаимодействие приложения как самой верхней ступени с самым нижним уровнем иерархии - аппаратной частью компьютера, черезнабор каких-либо стандартных функций и подпрограмм. Кроме того она должна обеспечивать пользователя удобным интерфейсом. Рассмотрим как это реализовано в выбранной операционной системе Windows 95. Функциональная схема работы операционной системы Windows 95 представленная на рис 2.1.
Аппаратная часть компьютера представляющая собой какие-либо устройства ввода-вывода информации (клавиатура, мышь, принтер, плоттер, сканер, устройство чтения компакт дисков, монитор и т.д.) подключена на системную шину через так называемые контроллеры устройств имеющие в адресном пространстве памяти вычислительной машины какие-то адреса называемые портами ввода-вывода. Через эти порты при низкоуровневом программировании программист может обмениваться информацией с устройством. Но сейчас такая технология считается устаревшей и приводящей к излишним затратам ресурсов. Ведь в таком случае стандартные функции обмена информацией должны находится в каждой программе которая могла обмениваться информацией с внешними устройствами.
Windows 95 обеспечивает взаимодействие с внешними устройствами как с потоками информации независимо от самого устройства через свои собственные драйвера устройств.
Итак, устройства обмена информацией подключаются к компьютеру через контроллеры, которыми управляют драйверы устройств. Драйверы устройств разработаны таким образом, что при передаче информации на устройство они организовывают очередь следуя которой на устройство передается информация от различных приложений (например принтер). Однако при передаче информации в обратном направлении (от устройства) драйверы создают так называемые события (например событие “закончена печать” от принтера или “нажата кнопка” от мыши), которые операционной системой помещаются в глобальную очередь событий, из которой события попадают в специальный блок определения назначения события. Там по информации хранящейся в системе: приоритет события, какое приложение открыло поток обмены с устройством, приоритет приложения открывшего поток обмена и пр. Определяется назначение события, его принадлежность определенной виртуальной машине организованной системой. По этому назначению передается сообщение о происходящем событии приложению которое должно его обработать.
В отдельной виртуальной машине приложения по приходе событий организовывается локальная очередь событий. Из которой сообщения о событиях передаются по так называемому фокусу объекту который в этот момент находится в фокусе. Объектом может быть любой элемент управления (как то кнопки, поля ввода, имиджи, иконки, картинки и т.д.). С объектом связана целая система процедур и функций которые могут обрабатывать события приходящие объекту, а также могут передавать их другим объектам или выше на ступень по иерархии объектов (элементы управления передавать формам, а формы в свою очередь более глобальным формам или окнам приложений или самой системе).
Таким образом, задача программиста заключается в создании подпрограмм и функции реагирующих определенным образом на события приходящие от системы, для всех объектов которые могут использовать эти события в целях определяемых программой в целом, для конкретной задачи поставленной перед программой.
2.2. Используемая терминология
Итак, Visual Basic предназначен для быстрого создания приложений в среде Windows, и как любая программа для Windows, программа, написанная на Visual Basic, должна иметь как минимум одно окно.
В терминах Visual Basic все окна есть формы, в программе может быть множество окон-форм. Формы в программе служат для отображения элементов пользовательского интерфейса. На каждой форме может находится некоторое количество элементов управления, а также графика и даже другие формы, причем, как вырожденный случай, на форме может вообще не располагаться ни одного элемента.
В том случае, когда приложение использует окно-форму для отображения различных типов информации или предоставляет возможность работать в нескольких режимах, чтобы не засорять площадь окна множество дополнительных элементов, используется линейка ниспадающих меню. Каждое меню содержит список пунктов, которые в свою очередь могут разворачиваться в подменю. Названия подобных вложенных подменю, а также пунктов меню, при выборе которых потребуется в отдельном диалоговом окне выполнить некие дополнительные действия, при отображении в списке пунктов меню дополняются справа многоточием.
Элементы управления служат для отображения информации, выбора из некоторого множества объектов, а также для более ясного и четкого восприятия.
Любая, даже простейшая программа на Visual Basic, имеет свой Проект (project),информацию о котором хранится в специальном файле. В проект программы, отображаемом в специальном окне Проекта, помещаются все формы, модули и файлы, совокупность которых и составляет программу.
Visual Basic не является объектно-ориентированным языком вдогматическом понимании ООП (объектно-ориентированное программирование), Visual Basic базируется напарадигме событийно-ориентированного программирования: программа - суть некий набор реального или виртуального мира, каждый из которых понимает некий ограниченный набор событий (возможна, расширяемый). По приходу каждого события из набора отслеживаемых событий формы и элементы управления могут реагировать определенным образом, в соответствии с программным кодом, реализованным программистом для каждого объекта.
Для внесения управляющего программного кода для событий и методов используется Редактор Кода, который служит для создания, просмотра и модификации подпрограмм (Sub) и функций (Function). Процедура представляет собой подпрограмму, котораяне возвращает результата.
Программный код, связанный с формами и элементами управления, служит для реализации ответной реакции программы на действия пользователя или приход системного события.
Программный код может находиться в специальных программных модулях (стандартные модули и модули классов) или быть “привязан” только к элементу управления (то есть объекту)или форме.
Кроме набора событий (events), для каждого элементауправления существует предопределенный (возможно,расширяемый) набор свойств или характеристик (properties), представляющих собой некие начальные установки.Данные свойства разделяются посфере доступности:есть свойства, которые могут устанавливаться только в режиме разработки, только во время выполнения программы или в обоих случаях.Установка и настройка свойств объектов осуществляется в окне Свойств (Properties).
Для элементов управления и форм также существует связанный с ними набор методов (method), которые можно рассматривать как набор команд, понимаемых данным объектом.
Для некоторых отображаемых на экране элементов управления есть возможность задавать различные основные цвета и цвета фона. Для удобства выбора нужных цветов используется Цветовая Палитра (Color Palette).