- •Институт информационных систем управления
- •Кандидат экономических наук, доцент в.А. Машурцев
- •Введение.
- •Глава 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
1.7. События и методы.
Кроме свойств, которые являются описывающими объект данными, объекты могут обладать событиями и методами.
Событие – это начало или завершение любого действия, инициируемого пользователем при выполнении приложения или генерируемого операционной системой. Если вы хотите, чтобы элемент управления или форма реагировали на определенное событие, вы должны поместить код (команды, операторы) в процедуру обработки этого события. Список возможных событий для расположенных на форме элементов и самой формы можно посмотреть в окне кода. Вывести окно кода на экран можно двумя способами: двойным щелчок на объекте или щелчком, но кнопке “Показать код” в заголовке окна проводника проекта. После любого из этих действий на экране появится окно кода, верхняя строка которого разделена на две части. Щелчком на значке треугольника в левой части можно раскрыть список имеющихся на форме элементов. Первая строка этого списка называется общим разделом – General.
Если в списке выбрать какой-нибудь элемент и щелкнуть на значке треугольника в правой части верхней строки окна кода, раскроется список возможных событий для выбранного элемента. Если щелкнуть на каком либо элементе этого списка, то в пределах окна кода появится заготовка процедуры обработки данного события для выбранного элемента или формы. Щелчок на слове “General” в левом списке приводит к сдвигу вниз всех имеющихся в окне кода процедур и их заготовок. Освободившаяся сверху строка предназначена для объявления общих переменных, то есть переменных, которые можно использовать в любой процедуре данной формы. Для формы основным событием является Load, оно возникает в момент загрузки формы. Если вы раскроете левый список и щелкните в нём на слове “форма”, то в окне кода немедленно появится заготовка процедуры обработки этого события:
Private Sub Form1_Load()
. . . . . . . . . .
End Sub
В пустую строку между заголовком процедуры и её концом можно поместить код, который выполнится при загрузке формы. Из приведенного синтаксиса записи процедуры обработки событий следует, что имя процедуры составляется из имени соответствующего объекта (имя формы, например) и знака подчеркивания, за которым должно следовать название события.
Общими для всех элементов управления являются события
GotFocus и LostFocus. Событие GotFocus происходит, когда элемент становится активным, например, после щелчка на нем мышкой. В таком случае говорят, что элемент получил фокус. Событие LostFocus происходит, когда элемент теряет фокус, например, при активизации другого элемента.
Основными событиями для полос прокрутки являются события Change и Scroll. Событие Change возникает при щелчке на концевых стрелках полосы или на самой полосе, а также в момент отпускания левой кнопки мышки после протяжки ползунка. Событие Scroll генерируется непрерывно в процессе протяжки ползунка. Обработав событие Change, вы можете, например, вывести в текстовое окно установленное с помощью протяжки ползунка значение свойства Value:
Private Sub Hscroll2_Change()
Text1.Text = Hscroll2.Value
End Sub
или непосредственно использовать его в вычислениях:
a = b + Hscroll2.Value
Поскольку событие Scroll генерируется непрерывно по мере перемещения ползунка, то непрерывно выполняется процедура обработки этого события. И в текстовом окне будет непрерывно отображаться текущее значение свойства Value:
Private Sub Vscroll3_Scroll()
Text1.Text = Vscroll3.Value
End Sub
Для командной кнопки основным событием является Click. Оно возникает при щелчке на кнопке в режиме run. Заготовка процедуры обработки этого события, например, для командной кнопки Command2 имеет вид:
Private Sub Command2_Click()
. . . . . . . . . . .
End Sub
Рассмотрим пример обработки этого события. Откроем новый проект, расположим на форме командную кнопку и изменим её свойство Style на Graphical. Щелчком на кнопке “Показать код” в верхней строке окна Проводника проекта, открываем окно кода – оно пусто. В его верхней строке слева стоит надпись “General”, а справа “Declaration”. Щелкаем на левом крае пустой строки окна кода ниже этих надписей. Курсор примет вид мигающей вертикальной полоски, приглашающей ввести некоторый текст. Вводим:
Private a As Integer.
Этим мы объявили переменную “a”, которая может принимать только целочисленные значения и может использоваться в любой процедуре данной формы. Далее щелкаем по значку треугольника в левой половине верхней строки окна кода. И из появившегося списка выбираем “Форма”, в окне кода немедленно появится заготовка процедуры Form_Load:
Private Sub Form1_Load()
. . . . . . . . . .
End Sub
Внесём в неё код: a = 1. В результате получим:
Private Sub Form1_Load()
a = 1
End Sub
Снова щелкаем на том же значке и в выпавшем списке выбираем командную кнопку. В окне кода появится заготовка процедуры обработки события Click для этой кнопки. Внесём в неё код так, чтобы в результате получилось:
Private Sub Command1_Click()
If a = 0 Then
Command1.BackColor = vbRed
Command1.Caption = “Выход”
a = 1
Else
Command1.BackColor = vbGreen
Command1.Caption = “Вход”
a = 0
End if
End Sub
Выбираем на линейке инструментов значок черного треугольника и щелчком по нему запускаем приложение на выполнение. Вид формы остался прежний. Щёлкаем теперь на командной кнопке. Она становится зеленой и текст на ней изменяется на “Вход”. Еще раз щелкаем на ней: кнопка становится красной, а текст изменяется на “Выход”.
Любую процедуру обработки события можно вызвать программно. Например, Command1_Click. Процедура Command1_Click() параметров не имеет, поэтому при ее вызове программным способом скобки не указываются.
Рассмотрим теперь основные методы формы и элементов управления.
Метод – это встроенная в объект функция или, проще говоря, это то, что умеет делать объект сам. Используя методы объекта, можно решать некоторые задачи без написания кода. Наиболее важными методами формы являются методы Hide и Show. Первый из них позволяет скрыть некоторую форму, а второй – показать другую. Например:
Private Sub Command1_Click()
frmForm1.Hide
frmForm2.Show
End Sub
Из этого примера следует, что обращение к методу составляется из имени объекта, за которым через точку следует имя метода.
После применения метода Hide форма исчезает с экрана, но не выгружается из оперативной памяти (ОП). Поэтому можно использовать значения свойств расположенных на ней объектов. Например:
Form1.Hide
st = Form1.Text1.Text
Для удаления формы из ОП служит метод UnLoad:
UnLoad Form1
В этом случае ее объекты становятся недоступными.
Метод Load загружает форму в ОП:
Load Form1
Важным методом формы является также метод Print. Он позволяет выводить текст непосредственно на форму. Использовать его имеет смысл, когда форма не перегружена большим количеством элементов управления. Синтаксис метода Print следующий:
[Объект]. Print [Список вывода] [{;|,}]
Обычно в квадратные скобки берётся необязательный параметр. Если речь идёт о текущей форме, то элемент “Объект” можно не указывать. По умолчанию метод Print выводит текст и перемещается на следующую строку. Если список вывода пуст, метод пропускает одну строку. Элементы списка отделяются друг от друга запятой или точкой с запятой. Каждая строка выводимого текста условно делится на зоны шириной в четырнадцать символов установленного в свойстве Font размера. Если разделителем является запятая, то следующий элемент выводится с первой позиции следующей зоны, независимо от того, насколько заполнена символами предыдущая зона. Если разделителем служит точка с запятой, то следующий элемент в строке начинает выводиться непосредственно за последним символом предыдущего элемента. Свойства Font и ForeColor формы относятся именно к тексту, выводимому на форму методом Print.
Расположение текста на форме можно задать с помощью свойств CurrentX и CurrentY. Если вы задали размер шрифта, то оператор
CurrentY = TextHeight(string)*(n-1) установит в качестве строки вывода строку, отстоящую от верхней границы формы на n-1 строку символов, заданного вами размера шрифта. Здесь string – это выводимая на форму строка текста. Оператор CurrentX = TextWidth(string) сдвинет начало вывода в строке на ширину выводимой строки. Это неудобно. Поэтому для задания отступа по горизонтали от левого края формы лучше использовать не свойство CurrentX и метод TextWidth, а необязательные параметры Spc(n) и Tab(n). Tab без параметров всегда перемещает точку вывода на начало следующей зоны вывода независимо от того, сколько символов выведено в предыдущей зоне. Tab(n) устанавливает точку вывода с n-ной позиции строки независимо от количества уже напечатанных в строке символов. Spc(n) задаёт количество пробелов между предыдущим выводом и текущим.
Пример. Откроем новый проект и разместим на форме две командные кнопки. У первой свойство Caption изменим на “Вывести текст”, а у второй – на “Выход”. Откроем окно кода и создадим процедуры для этих кнопок:
Private Sub Command1_Click()
Dim s As String, s1 As String
s = “Событие – это реакция системы”
s1 = “ на действия пользователя”
Backcolor = &HFFCOCO - голубой цвет формы
CurrentY = TextHeight(“s”)*5 - отступ в 5 строк от
верхнего края формы
ForeColor = vbRed
Print Tab(10); s
CurrentY = TextHeight(“s1”)*6 - отступ в 6 строк от
верхнего края формы
ForeColor = vbGreen
Print Tab(10); s1
End Sub
Private Sub Command2_Click()
End
End Sub
Для нашей формы установим свойство Font. Для этого щелкаем в правой части строки этого свойства в окне свойств формы. В конце строки появляется знак троеточия. Щелчок на нем открывает окно задания параметров шрифта. Выбираем название шрифта Times New Roman, начертание – жирный курсив и размер равный 16 и нажимаем кнопку Ok. Запустим приложение на выполнение. Щелкаем на первой кнопке – выполнится первая процедура, и текст появится на форме. Щелчок на второй завершает работу приложения.
Общим методом для всех элементов управления является метод SetFocus. Он позволяет активизировать элемент программным способом. Например, после выполнения оператора Text2.SetFocus активным станет второе текстовое окно.