- •Институт информационных систем управления
- •Кандидат экономических наук, доцент в.А. Машурцев
- •Введение.
- •Глава 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
3.5.2.3. Цикл перечислимого типа.
Цикл перечислимого типа For Each … Next занимает промежуточное место между регулярным циклом и итерационными циклами. Внешне он похож на регулярный цикл, а его работа напоминает работу итерационных циклов: операторы тела этого цикла выполняются обычно неопределенное число раз. Синтаксис этого цикла:
For Each <элемент> In <группа>
Операторы тела цикла
Next <элемент>
Параметр <элемент> может быть только объектной переменной или переменной типа Variant.
Часто бывает неизвестно, сколько элементов содержится в группе элементов. Операторы тела цикла перечислимого типа будут повторяться до тех пор, пока не будут обработаны все элементы группы.
Пример. Чтобы рассмотреть содержательный пример типичного использования циклов перечислимого типа, нужно познакомиться с понятиями объекта, класса и коллекции.
Объектом называется некоторая сущность, определяющаяся именем, значениями приданных ей свойств, а также наборами методов и событий. Из этого определения следует, что объектами являются все окружающие нас предметы. Для объектов, которые являются элементами языка программирования, можно дать следующее определение: программный объект это комбинация кода и данных, рассматриваемая как единое целое. Данные определяют свойства объекта, а код – его поведение, т.е. методы и события, связанные с данным объектом.
Класс это абстрактное понятие, устанавливающее общность тех объектов, которые имеют одинаковые наборы свойств и методов. Класс содержит полную информацию о свойствах, относящихся к нему объектов, но, в отличие от объектов, не содержит никакой информации о значениях этих свойств. Например, каждое конкретное текстовое окно на форме является объектом, который относится к классу “TextBox”. Каждое текстовое окно имеет заданные по умолчанию или установленные программистом конкретные значения присущих ему свойств. Класс же “TextBox” содержит просто перечень всех возможных свойств, присущих всем текстовым окнам, но не содержит значений этих свойств. Таким образом, любой объект является экземпляром, принадлежащим некоторому классу.
Коллекцией называется объединенный под общим именем набор объектов, каждый из которых может иметь свой собственный тип, т.е. относиться к разным классам. Так, например, совокупность всех элементов управления, расположенных на форме, может состоять из элементов разного типа (текстовые окна, метки, полосы прокрутки, командные кнопки и т.д.), но составлять коллекцию. В VB существуют встроенные коллекции, например, Controls (коллекция всех существующих элементов управления), Forms (коллекция экранных форм), Printers (коллекция всех зарегистрированных в системе принтеров) и т.д.
Приведем теперь пример использования цикла перечислимого типа. Откроем новый проект и расположим на форме различные элементы управления. В разделе General формы объявим объектную переменную collect, которая будет содержать формируемую нами коллекцию элементов управления, расположенных на нашей форме:
Private collect As New Collection
В процедуру загрузки формы внесем код:
Private Sub Form1_Load()
Dim contr As Control
For Each contr In Me.Controls
collect.Add contr
Next contr
For Each contr In collect
If TupeName(contr) = “TextBox” Then contr.Text = “”
If Not TypeOf contr Is CommandButton Then contr.ForeColor = vbGreen
Next contr
End Sub
В этой процедуре мы объявили локальную объектную переменную contr. Первый оператор For Each . . . . Next с помощью метода Add добавляет в нашу коллекцию все расположенные на текущей форме элементы управления. Если мы обращаемся к активной в данный момент форме, то вместо ее реального имени (Form1) можно указывать имя Me.
Итак, после завершения первого цикла наша коллекция создана.
Теперь мы хотим с ее помощью очистить все текстовые окна на форме и любой текст, выводимый на форме или ее элементах управления, сделать зеленым. Но, не все элементы управления на форме являются текстовыми окнами. Поэтому первый условный оператор во втором операторе цикла проверяет, является ли очередной элемент текстовым окном (функция TypeName возвращает имя объекта, являющегося ее аргументом).
Кроме того, мы знаем, что цвет надписи на командной кнопке может быть только черным и изменить его невозможно, т.к. командная кнопка не имеет свойства ForeColor. Поэтому во втором условном операторе мы проверяем, является ли очередной элемент управления командной кнопкой (оператор TypeOf определяет тип переменной). Если нет, то мы устанавливаем значение его свойства ForeColor = vbGreen.
Следует сделать ряд замечаний, оносящихся к циклам любого типа:
1. Некорректными являются вопросы: “Сколько раз повторяется тот или иной цикл?” Если цикл не вложен в любой другой цикл, то он всегда выполняется либо только один раз (при этом операторы его тела могут повториться множество раз), либо не выполниться вообще.
2. Если Вы вошли в цикл, то он не может игнорироваться ни при каких условиях. Могут игнорироваться операторы тела цикла, а не сам цикл.
3. Оператор любого цикла может не выполниться вообще только если произошло “зацикливание”, т.е. если в результате сбоя или ошибки программиста цикл непреднамеренно стал бесконечным. В этом случае программно мы не можем выйти из цикла и, значит, не можем утверждать, что цикл выполнился.