- •Институт информационных систем управления
- •Кандидат экономических наук, доцент в.А. Машурцев
- •Введение.
- •Глава 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.6. Списки.
Процедуру выбора позволяют реализовать элементы CheckBox и
OptionButton, однако, их возможности ограничены. На форме практически невозможно расположить сотни этих элементов, если требуется выбор из такого числа вариантов. Эту задачу позволяют решить элементы управления ListBox и ComboBox.
3.6.1. Элемент ListBox.
Элемент управления ListBox предназначен для осуществления множественного выбора из предлагаемого списка вариантов. Его основные свойства:
Таб. 3.6.1.
-
Свойство
Значение свойства
Name
Имя элемента
List
Массив элемента списка
ListCount
Количество элементов в списке
ListIndex
Номер выбранного элемента в списке
Sorted
Сортировка элементов в списке
MultiSelect
Параметр множественного выбора из списка
Префиксом имени этого элемента служит lst. После размещения элемента на форме будет изображена только рамка. На ней нет элементов списка и полос прокрутки. Полосы будут автоматически добавлены, если введённые в список элементы не будут помещаться в окне. Элементы списка вводятся в режиме design в поле свойства List элемента ListBox. Это будут варианты, доступные для выбора пользователем. Элементы списка хранятся в поле свойства List в виде массива символьных строк. Для добавления элементов в список выберите свойство List, щелчок на стрелке вниз открывает доступ к окну ввода элементов списка. Для добавления элемента наберите на клавиатуре нужный текст и нажмите Enter.
Чтобы получить отсортированный список, нужно установить свойство Sorted равным True.
Добавлять элементы в список можно программным путём двумя способами: либо с помощью свойства List(i), либо с помощью метода AddItem. Оба способа позволяют добавлять новые элементы в список только без пропуска позиции в списке. Например, фрагмент кода:
List1.List(0 )= ”0”
List1.List(1)= ”1” List1.List(2) = ”2”
правильно заносит элементы в список, а следующий фрагмент:
List1.List(0 )= ”0”
List1.List(2) = ”1” List1.List(3) = ”2”
вызовет сообщение об ошибке.
Добавить элемент позволяет также метод AddItem. Обратиться к нему можно следующим образом:
ListName.Additem ListItem [,Index]
Здесь ListName – имя элемента; ListItem – элемент, добавляемый в список. Если он не является числом, то должен заключаться в кавычки.
Необязательный параметр [,Index] определяет позицию добавляемого элемента в списке. Если [,Index] отсутствует, то вводимый элемент добавляется в конец неотсортированного списка. Если же свойство Sorted списка установлено в значение True, то добавление происходит в алфавитном порядке. Индекс первого элемента всегда равен 0. Как и для свойства List, фрагмент:
List1.AddItem ”0”, 0
List1.AddItem ”1”, 1 List1.AddItem ”2”, 2
правильно заносит элементы в список, а следующий фрагмент:
List1.AddItem ”0”, 0
List1.AddItem ”1”, 1 List1.AddItem ”2”, 3
вызовет сообщение об ошибке.
Вставить элемент внутрь уже существующего списка позволяют оба способа, но с разным результатом. При использовании свойства List(i) i-ый элемент замещается вставляемым, а при использовании метода AddItem “a”, i на i-ое место будет вставлен новый элемент, а все следующие будут сдвинуты вниз.
Для удаления элементов из списка нужно обратиться к методу
RemoveItem:
ListName. RemoveItem Index,
где Index – позиция удаляемого элемента в списке.
Удалить все элементы списка можно с помощью метода Clear:
ListName.Clear
Свойство ListCount позволяет определить количество элементов в списке, что требуется при обработке элементов списка в цикле. Свойство ListIndex показывает номер выбранного элемента (отсчёт с нуля), а свойство Text – его содержимое. Например, можно внести в список какие-либо элементы, затем создать на форме 2 текстовых окна, открыть окно кода, дважды щёлкнув на элементе ListBox, и для события Click написать процедуру:
Private Sub List_Click ()
Text1.Text = List1.List(List1.ListIndex)
Text2.Text = List1.Text
End Sub
Запустив программу, щёлкните на каком либо элементе списка - он появится в обоих текстовых окнах. Свойство NewIndex возвращает индекс последнего добавленного в список элемента.
Свойство SelCount возвращает количество выбранных элементов списка. Оно особенно полезно, когда пользователь осуществляет множественный выбор.
Чтобы можно было выбрать не один, а несколько элементов, нужно задать значение свойства MultiSelect. По умолчанию оно равно нулю и позволяет выбрать только один элемент. Если установить значение 1, то можно выбирать несколько элементов щелчками на них мышкой. Повторный щелчок на одном и том же элементе отменяет предыдущий выбор. Если же установить MultiSelect = 2, то можно выбирать сразу группу элементов. Для этого нужно при нажатой клавише Shift выбрать первый элемент из группы, а затем последний. Однако для обработки множественного выбора нельзя использовать свойство ListIndex. Выбор нескольких элементов фиксируется в свойстве Selected, являющемся массивом, размерность которого равна числу элементов списка. Выбранному элементу соответствует значение True, а не выбранному - False. Следующий код выводит в текстовое окно все выбранные элементы:
Text1.Text = “”
For i = 0 To List1.ListCount-1
If List1.Selected(i) Then
Text1.Text = Text1.Text & List1.List(i) & vbCrLf
End If
Next i
Каждому элементу списка можно поставить в соответствие число типа Long, используя свойство ItemData. Например, в свойство List можно внести названия изделий, а в ItemData - их шифры. В результате шифры будут “приклеены” к названиям и при любой сортировке будут неотступно следовать за соответствующими им названиями. Свойство ItemData является массивом. При заполнении списка можно одновременно заполнить и массив ItemData. Например:
For i=0 To 10
List1.List(i) = i
List1.ItemData(i) = i
Next i
Если после этого в k+1-ю строку уже заполненного списка добавить новый элемент с помощью метода AddItem, то для него следует задать и значение свойства ItemData, например:
List1.AddItem “Проект A”, k
List1.ItemData(List1.NewIndex) = k
При этом все следующие элементы списка сдвинутся вниз, но значения их свойства ItemData останутся прежними, то есть для данного примера в k+1-ой и k+2-ой строках элементы списка будут иметь одно и то же значение свойства ItemData.
Для отображения в окне списка нескольких логически связанных данных их нужно “склеить” в строку и загрузить её как элемент списка:
FIO = Fam & Im & Otch
List1 AddItem, FIO