- •Представление информации
- •Представление символов
- •Представление целых чисел (способ с фиксированной точкой)
- •Представление чисел с дробной частью (способ с плавающей точкой)
- •Некоторые важные итоги
- •О Visual Basic (далее vb) в сравнении с другими языками.
- •Основные типы данных vb
- •Типы Byte/Integer/Long
- •Типы Single/Double/Currency
- •Структура проекта
- •Переменные
- •Область видимости переменных
- •Время жизни переменных
- •Константы
- •Преобразование и совместимость типов
- •Ввод и вывод значений переменных Ввод данных с помощью функции InputBox
- •Вывод данных с помощью инструкции Print
- •Форматирование вывода
- •Лекция 6 Вывод данных с помощью функции MsgBox
- •Управление порядком выполнения инструкций
- •Условная инструкция If ... End If
- •Однострочный синтаксис
- •Блочный синтаксис
- •Инструкция выбора Select Case (выбрать в случае)
- •Инструкции цикла
- •1. Параметрический цикл For… Next
- •Лекция 7
- •2. Итерационный циклDoWhile...LoopилиDo...LoopWhile
- •3. Итерационный цикл Do Until...Loop или Do...Loop Until
- •Операции и функции
- •Лекция 8 Массив
- •1. Описание массива фиксированного размера
- •2. Описание динамического массива
- •3. Присвоение массивов
- •Лекция 9
- •Логические операции
- •Лекция 10 процедуры и функции
- •Виды процедур и функций
- •Вызов процедур и функций
- •Объявление процедур и функций
- •Именованные аргументы
- •Область действия имен процедур и функций
- •Пример 1.
- •Пример 2.
- •Лекция 11
- •Лекция 12
- •Перечень подзадач
- •Блок-схема алгоритма функции Проверка
- •Разработка программы
- •Лекция 13 Пример 4
- •Передача аргументов по ссылке и по значению
- •Лекция 14 Отладка
- •1. Режим отладки
- •2. Точка останова
- •3. Пошаговое выполнение программы
- •3.1. Шаг с заходом (Step into)
- •3.2. Шаг с обходом (Step Over)
- •3.3. Шаг с выходом (Step Out)
- •3.4. Выполнить до текущей позиции (Run To Cursor)
- •3.5. Список вызовов
- •4. Окна режима отладки
- •4.1. Окно подсказки Data Tips
- •4.2. Окно контрольного значения (WatchWindow)
- •4.3. Окно локальных переменных (LocalWindow)
- •4.4. Окно отладки (ImmediateWindow)
- •4.5. Инструкция Print
- •5. Обработка ошибок времени выполнения
- •5.1. Перехват ошибки
- •5.2 Проверка и устранение ошибки
- •5.3 Продолжение выполнения программы
- •Лекция 15 Пользовательский тип данных
- •ИнструкцияWith
- •Использование в качестве аргументов процедур и функции имен форм и элементов управления
- •Знаки типов
- •Графика
- •1. Система координат
- •1.1 Свойство ScaleMode
- •1.2. СвойстваScaleLeftиScaleTop
- •Лекция 16
- •1.3. СвойстваScaleWidthиScaleHeigt
- •1.4. МетодScale
- •2. Графические изображения
- •3. Графические управляющие элементы
- •4. Работа с рисунками
- •5. Графические методы
- •6. Построение графиков функций
- •Лекция 17 Файлы
- •Номер файла
- •Типы доступа к файлам
- •Последовательный доступ
- •Чтение из файла последовательного доступа
- •Запись в файл последовательного доступа
- •Произвольный доступ
- •Открытие файла
- •Ввод и вывод (Get- чтение,Put- запись)
- •Двоичный доступ
- •Открытие файла для двоичного доступа
- •Ввод и вывод
- •Лекция 18 События
- •События клавиатуры
- •Объекты, классы, коллекции
- •Экзаменационные вопросы
Ввод и вывод (Get- чтение,Put- запись)
Для чтения и записи данных используются соответственно инструкции GetиPut.
Get #НомерФайла, НомерЗаписи, Переменная
Put #НомерФайла, НомерЗаписи, Переменная
В примере в файл записываются данные из переменной Address, причем номер записи равен 7, а затем в переменнуюAddressсчитывается вторая запись файла.
Put #fh, 7, Address 'сохраняет 7-ую запись
Get #fh, 2, Address 'считывает 2-ую запись
Для того чтобы в одной записи сохранить несколько значений различных типов, следует использовать пользовательские типы данных:
Type Person
FirstName As String * 20
Name As String * 20
CustomerN As Integer
End Type
Dim Customer As Person
Private Sub Command1_Click()
Dim fh As Integer
fh = FreeFile
Open "C:\LORE.DAT" For Random As fh Len = Len(Customer)
Get #fh, 2, Customer
Close #fh
End Sub
Двоичный доступ
Двоичный доступ незначительно отличается от произвольного доступа. Разница состоит только в том, что двоичный доступ возможен не к определенному набору данных, а к отдельному байту внутри любого файла.
Открытие файла для двоичного доступа
Для открытия двоичного файла также используется инструкция Open:
Open ИмяФайла Fоr Binary [Access Доступ] [Блокировка] As [#] НомерФайла
Формат инструкции Openпри двоичном доступе похож на формат этой инструкции при произвольном доступе. Главное отличие состоит в том, что вместо ключевого словаRandomуказываетсяBinary, а параметр Len отсутствует, так как записи имеют фиксированную длину – 1 байт.
Пример
Open “SPOCK.VUL” For Binary As fh
Ввод и вывод
Для считывания и записи в файл используются также инструкции GetиPut. Синтаксис их такой же, как при произвольном доступе, только вместо номера записи указывается номер байта:
Get #fh, 12, Var 'считывает 12-й байт
Put #fh, 4, Var 'записывает 4-й байт
Если данные считываются в строку, то будет считано такое количество байтов, равное длине строки:
Dim strOutput As String
str0utput = String(24, " ")’Создана строка длиной 24 байта
Get #fh, 26, str0utput
В данном примере в строку считывается 24 байта, начиная с 26-го байта файла
Лекция 18 События
Система Windowsгенерирует события (сообщения для приложения), которые предназначены для управления работой приложения. Приложение может реагировать или не реагировать на событие. Для того чтобы приложение реагировало на событие, программист должен поместить программный код в заготовке соответствующей событийной процедуры.
Некоторые события поддерживают почти все управляющие элементы. Такими событиями, например, являются:
GotFocus(Получил фокус) – генерируется в момент получения объектом фокуса клавиатуры. Пока объект обладает фокусом, все события клавиатуры происходят для него.
LostFocus(Потерял фокус) – генерируется, когда фокус перемещается на другой объект.
Форма поддерживает события, некоторые из которых используются особенно часто.
Наиболее часто применяемые события формы
Имя события |
Когда происходит |
Load |
При загрузке формы. Удобно использовать для инициализации элементов формы |
Paint |
При перерисовывании формой своего содержимого |
QueryUnlload |
Перед выгрузкой формы. Используется для отмены выгрузки формы |
Resize |
При любом изменении размеров формы, при первом ее появлении на экране, свертывании и восстановлении |
Terminate |
При прекращении существования формы. Из памяти удаляются все ссылки на форму, она больше не может быть загружена |
Unload |
При выгрузке формы из памяти. Ссылки на форму сохраняются, она может быть загружена заново |
Источником некоторых событий может быть мышь.
События мыши
Имя события |
Когда происходит |
Click |
При нажатии и отпускании кнопки мыши (щелчок) |
DragDrop |
При окончании перетаскивания объекта |
DragOver |
При перетаскивании объекта |
MouseDown |
При нажатии кнопки мыши. Аргументы событийной процедуры позволяют определить, какая из кнопок мыши была нажата и не происходит ли это при нажатой клавише ShiftилиCtrlилиAlt |
MouseMove |
При перемещении мыши |
MouseUp |
При отпускании ранее нажатой кнопки мыши |
Клавиатура также является источником событий. События клавиатуры происходят для того управляющего элемента, который в данный момент обладает фокусом клавиатуры. В случае, если ни один управляющий элемент не обладает фокусом, это событие получит форма. Но если свойству KeyPreviewформы присвоить значениеTrue(по умолчанию оно имеет значениеFalse), то каждое событие клавиатуры будет происходить сначала для формы, затем для управляющего элемента, обладающего фокусом клавиатуры.