- •Институт информационных систем управления
- •Кандидат экономических наук, доцент в.А. Машурцев
- •Введение.
- •Глава 1. Vb 6.0 – среда разработки приложений.
- •1.1. Окна среды vb.
- •1.2. Файловая структура проекта.
- •1.3. Визуальное конструирование приложения.
- •1.4. Основные свойства формы и задание их значений.
- •1.5. Добавление форм к проекту и удаление форм из проекта.
- •1.6. Основные элементы управления и их свойства.
- •1.6.1. Элемент Label.
- •1.6.2. Элемент TextBox. Элемент TextBox (текстовое окно) предназначен для ввода исходной
- •1.6.3. Элементы HscrollBar и VscrollBar.
- •1.6.4. Элемент CommandButton.
- •1.7. События и методы.
- •1.8. Включение изображений в интерфейс пользователя.
- •1.8.1. Элемент Image. Элемент управления Image предназначен в основном для нанесе-
- •1.8.2. Элемент PictureBox.
- •1.9. Сохранение проекта.
- •Глава 2. Данные vb.
- •2.1. Типы данных.
- •2.1.1. Типы числовых данных.
- •2.1.1.1. Целочисленные данные.
- •2.1.1.2. Вещественные данные.
- •2.1.2. Типы нечисловых данных.
- •2.2. Объявление переменных и констант.
- •2.3. Область видимости переменных и констант.
- •2.4. Совместимость и преобразование типов данных.
- •2.5. Ввод исходных данных и вывод результатов обработки.
- •2.5.1. Окно сообщений. Оператор и функция MsgBox.
- •2.6. Форматирование вывода чисел.
- •Глава 3. Алгоритмизация вычислительных процессов.
- •3.1. Алгоритм и его свойства.
- •3.2. Типы вычислительных процессов.
- •3.3. Операторы vb.
- •3.4. Логические выражения.
- •3.5. Управляющие конструкции.
- •3.5.1. Операторы ветвлений.
- •3.5.1.1. Условный оператор.
- •3.5.1.2. Оператор выбора.
- •3.5.2. Операторы циклов.
- •3.5.2.1. Регулярный цикл.
- •3.5.2.2. Итерационные циклы.
- •3.5.2.3. Цикл перечислимого типа.
- •3.5.3. Элементы выбора.
- •3.5.3.1. Элемент CheckBox.
- •3.5.3.2. Элемент OptionButton.
- •3.5.4. Элемент управления и функция Timer.
- •3.5.5. Дата и время.
- •3.5.6. Оператор DoEvents.
- •3.5.7. Объединение кнопок в группы.
- •3.5.7.1. Элемент Frame.
- •3.6. Списки.
- •3.6.1. Элемент ListBox.
- •3.6.2. Элемент ComboBox.
- •Глава 4. Массивы.
- •4.1. Одномерные массивы.
- •4.2. Двумерные массивы.
- •4.3. Статические и динамические массивы.
- •4.4. Функция Array.
- •4.5. Генератор случайных чисел.
- •4.6. Функции lBound и uBound.
- •4.7. Массивы элементов управления.
- •4.8. Сопоставление массивов и списков.
- •4.9. Элемент msFlexGrid.
- •4.10. Упорядочение строк элемента msFlexGrid.
- •Глава 5. Процедуры и функции полоьзователя.
- •5.1. Создание стандартного модуля в приложении.
- •5.2.2. Вызов процедуры на выполнение.
- •5.3. Функции пользователя.
- •Глава 6. Обработка текстовой информации.
- •6.1. Изменение регистра символов в тексте.
- •6.2. Поиск заданной подстроки в тексте.
- •6.3. Выборка части текста.
- •6.4. Замена символов в тексте.
- •6.5. Удаление лишних пробелов из строки текста.
- •6.6. Инвертирование строк.
- •6.7. Преобразование текстовых строк в числа и наоборот.
- •6.8. Определение длины текста.
- •Глава 7. Создание меню пользователя.
- •Глава 8. Пользовательский тип данных.
- •8.1. Записи.
- •8.2. Сложные структуры данных.
- •Глава 9. Файлы.
- •9.1. Файлы последовательного доступа.
- •9.1.1. Открытие файла последовательного доступа.
- •9.1.2. Запись информации в файл.
- •9.1.3. Чтение информации из файла.
- •9.1.4. Закрытие файла.
- •9.2. Файлы произвольного доступа.
- •9.2.1. Открытие файла произвольного доступа.
- •9.2.2. Запись информации в файл.
- •9.4. Операции с файлами в vb.
- •9.5. Файловые операторы и функции обработки данных.
- •9.6. Сравнительный пример работы с файлами.
- •Глава 10. Обработка бд Access в среде vb.
- •10.1. Создание бд Access в среде vb.
- •10.2. Использование технологии Data Access Objects (dao).
- •10.2.1. Элемент управления Data.
- •10.2.2. Свойство Recordset элемента Data.
- •10.2.3. Программное связывание элементов.
- •10.3. Технология ActiveX Data Objects (ado).
- •10.3.1. Подключение ado Data к источнику данных (бд).
- •10.3.2. Подключение ado Data к источнику записей.
- •10.3.3. Элемент управления DataGrid.
- •10.4. Объекты ado.
- •10.4.1. Объект Connection.
- •10.4.2. Объект RecordSet.
- •10.4.3. Перемещение по набору записей.
- •10.4.4. Обращение к отдельным полям записи.
- •10.4.5. Выполнение запросов к бд.
- •10.5. Пример обработки бд в рамках технологии ado.
- •Глава 11. Обмен данными между приложениями.
- •11.1. Экспорт данных из бд в текстовый файл.
- •11.2. Технология внедрения и связывания (ole).
- •11.3. Связывание и внедрение на этапе design.
- •11.3.1. Связывание на этапе проектирования. Сразу же после размещения на форме элемента ole появляется
- •11.3.2. Внедрение на этапе проектирования.
- •11.4. Связывание и внедрение объектов на этапе run.
- •11.4.1. Свойства ole-контейнера.
- •11.4.2. Методы ole-контейнера.
- •11.4.3. События, связанные с ole-контейнером.
- •11.4.5. Внедрение объекта на этапе run. Для внедрения объектов в vb-приложение используется метод CreateEmbed. Синтаксис оператора, использующего этот метод:
- •Глава 12. Графические средства vb 6.
- •12.1. Управление цветом.
- •12.2. Изображения в интерфейсе проекта.
- •12.2.1. Наложение изображения на этапе проектирования. Наложение изображения на форму.
- •Восстановление утраченных графических файлов.
- •Наложение изображения на элемент PictureBox.
- •Наложение изображения на элемент CommandButton.
- •12.2.2. Наложение изображений на этапе выполнения.
- •12.3. Использование анимированных изображений.
- •12.3.1. Визуализация анимированных gif-файлов.
- •12.3.2. Визуализация на форме клипов.
- •12.4. Рисунки на графических объектах.
- •12.4.1. Элемент Shape.
- •12.4.2. Элемент Line.
- •12.5. Графические методы.
- •12.5.1. Методы для работы с изображением точки.
- •12.5.2. Метод Line.
- •12.5.3. Метод Circle.
- •12.6. Использование графики для решения отдельных задач.
- •12.6.1. Визуализация процесса сортировки элементов массива.
- •12.6.2. Принадлежность точки заданной области.
- •Приложение 1. Типовые алгоритмы обработки чисел.
- •Приложение 3. Алгоритмы обработки массивов.
- •Приложение 4. Примеры создания процедур и функций.
- •Приложение 5. Пример обработки типизированных файлов.
- •Приложение 6. Пример обработки бд Access в среде vb.
- •Оглавление
- •Глава 1. Vb 6.0 – среда разработки приложений. 4
- •Глава 2. Данные vb. 20
- •Глава 3. Алгоритмизация вычислительных процессов. 33
- •Глава 4. Массивы. 61
- •Глава 5. Процедуры и функции полоьзователя. 77
- •Глава 10. Обработка бд Access в среде vb. 110
- •Глава 11. Обмен данными между приложениями. 139
- •Глава 12. Графические средства vb 6. 150
Глава 5. Процедуры и функции полоьзователя.
Важнейший принцип, применяемый при разработке сложных проектов – принцип модульности. Сущность его в том, чтобы составит проект из отдельных логически законченных и независимых блоков - модулей.
Как упоминалось ранее, в VB существуют 3 типа модулей: модуль формы, стандартный модуль (его еще называют главным модулем) и модуль класса. С первым из них Вы уже хорошо знакомы. Рассмотрим подробнее второй тип модулей.
Любой проект это действия пользователя с интерфейсом и реакция на эти действия, запрограммированная в процедурах обработки событий. Процедуры обработки событий автоматически вызываются при наступлении соответствующего события. Они как бы постоянно находятся в состоянии ожидания готовые включиться в работу, как только произойдёт их событие.
В VB существуют другие процедуры – процедуры пользователя.
Они не связаны ни с какими событиями, содержат типовые алгоритмы обработки данных, многократно используемые с различными данными, и вызываются из программы пользователя специальными операторами. Такие процедуры часто объединяют в блоки, называемые стандартными модулями.
Стандартные модули могут содержать объявления глобальных переменных, констант, типов и процедур, доступных для других модулей данного приложения. Они хранятся в файлах с расширением bas. Стандартный модуль не может содержать никаких элементов управления, и вообще ничего кроме кодов процедур и функций и объявлений переменных, констант и типов.
5.1. Создание стандартного модуля в приложении.
Если в окне проекта уже есть файл стандартного модуля, его и выбираем для записи в него требующихся процедур. Двойной щелчок на имени модуля в окне проекта открывает окно редактирования кода этого модуля. Если в окне проекта нет файла модуля, то в меню “Проект” нужно выбрать опцию “Добавить модуль”. Появится окно, в котором” нужно выбрать значок с надписью “Module” и нажать кнопку “Открыть”. В проекте будет создан файл нового стандартного модуля. Двойной щелчок на его имени в окне проекта открывает окно редактирования кода модуля. Записываем в нем объявления глобальных переменных (Public), т. е. переменных с областью видимости, равной всему проекту, объявления переменных с областью видимости, ограниченной данным модулем (с ключевым словом Private), а также коды процедур, общих для всего проекта (с ключевым словом Public) и коды процедур, общих для данного модуля (с ключевым словом Private).
Модуль любого вида как бы является контейнером для Ваших процедур и функций так же, как, например элемент Frame является контейнером для других элементов управления. Отличие разных типов модулей друг от друго заключается в следующем:
Модуль формы содержит процедуры и функции, используемые для выполнения конкретного текущего приложения.
В стандартный модуль записываются процедуры и функции, которые Вы можете использовать в других приложениях, подключая к ним данный стандартный модуль. Другими словами, стандартный модуль может являться Вашей личной библиотекой программ. Подключить к проекту стандартный модуль из другого проекта можно так: копируем в папку данного проекта требующийся модуль из другого проекта, выполняем “Проект / добавить модуль” и в открывшемся окне выбираем вкладку “Существующий”. В результате в этом окне появится пиктограмма добавляемого модуля. Остается выделить ее мышкой и нажать в окне кнопку “Открыть”. Модуль будет добавлен к проекту и его файл появится в окне проводника проекта.
В модуль класса записываются коды процедур и функций, которые
используются в объектно-ориентированном программировании (ООП). Этот тип модулей в данном курсе не рассматривается.
5.2. Процедуры пользователя.
Существуют задачи, которые требуется решать при самых разных исходных данных: числовых, строковых, массивах разной размерности. Примером может служить задача упорядочивания данных. Если эту операцию оформить в виде отдельной процедуры, то её можно будет многократно вызывать в разных местах программы, передавая ей всякий раз соответствующую информацию. Если требуется, чтобы эта процедура была доступна в любой другой процедуре данной формы, её нужно объявить как Public Sub и разместить в разделе General данной формы. Если же проект содержит несколько форм и требуется, чтобы процедура была доступна в любой процедуре любой из форм проекта, то обеспечить это можно, только объявив её как Public Sub и разместив в стандартном модуле. Для создания собственной процедуры нужно в окне кода набрать:
Sub имя процедуры
В ответ система сформирует заготовку процедуры:
Sub < имя процедуры>( )
End Sub
Синтаксис объявления процедур:
[Public][Private][Static] Sub <имя процедуры> (<список
формальных параметров>)
[Объявления локальных переменных]
Операторы тела процедуры
End Sub
Синтаксис объявления локальных переменных:
[Dim] [Static] <имя переменной> As <имя типа>
Переменные, объявленные внутри процедуры, определены и доступны только в ней. Если переменная объявлена оператором Dim, то после завершения процедуры отведённая под эту переменную память освобождается, и значение переменной не сохраняется. Если требуется, чтобы при очередном выполнении процедуры некоторая переменная имела значение, которая она получила при предыдущем вызове процедуры, её нужно объявлять оператором Static:
Private Sub P ( )
Static k%
. . . . . .
k = k+1 - счётчик количества
обращений к процедуре Р
End Sub
В общем случае объявление переменной в разделе General модуля имеет синтаксис:
[Public] [Private] [Static] < имя переменной > As <имя типа>
Все рассмотренные ранее в разделе “Область видимости переменных” правила распространяются и на процедуры. Для них так же, как и для переменных, область видимости (область доступности) зависит от того, где и с каким ключевым словом объявлена процедура. А именно:
В любой процедуре формы:
- доступны все процедуры этой формы независимо от того,
с каким ключевым словом они объявлены (Public, Private, Static);
- доступны только процедуры Public других форм приложения,
однако в операторах их вызова необходимо указывать имя
формы, на которой объявлена вызываемая процедур, и через
точку имя самой процедуры;
- доступны только процедуры Public любого из стандартных
модулей приложения.
В любом стандартном модуле:
- доступны все процедуры этого модуля независимо от того, с
каким ключевым словом они объявлены (Public, Private, Static);
- доступны только процедуры Public других стандартных модулей
приложения;
- доступны только процедуры Public других форм приложения,
однако в операторах их вызова необходимо указывать имя
формы, на которой объявлена вызываемая процедура, и через
точку - имя самой процедуры.
5.2.1. Параметры (аргументы) процедур.
Обычно для выполнения процедуры ей нужно передать некоторую информацию. Эта информация заключается в значениях переменных, передаваемых процедуре при её вызове. Переменную, передаваемую процедуре при её вызове, называют параметром или аргументом процедуры. Различают формальные и фактические параметры процедур.
Формальные параметры это те, которые перечисляются в списке параметров в заголовке процедуры при её объявлении. Фактические параметры это те, которые подставляются в оператор вызова процедуры вместо соответствующих формальных параметров.
Список формальных параметров представляет собой перечень имён переменных, массивов, процедур или функций, содержащих передаваемые процедуре данные для обработки, а также перечень имён переменных или массивов, возвращаемых процедурой с результатами обработки.
Параметры можно передавать процедуре по ссылке (с использованием ключевого слова ByRef) и по значению (с использованием ключевого слова ByVal). При передаче параметра по ссылке процедура получает физический адрес переменной в памяти. Значение этой переменной может быть изменено в процедуре. По умолчанию все параметры передаются процедуре по ссылке. В этом случае необходимо явно указывать тип переменной: Private Sub P (ByRef n As Integer).
При передаче параметра по значению процедуре передаётся только копия переменной. Если процедура изменяет эту переменную, то это затрагивает только её копию. Значение же самой переменной в оперативной памяти не изменяется. Признаком передачи параметра по значению служит ключевой слово ByVal.
Например: Private Sub P (ByVal n As Integer).