- •Представление информации
- •Представление символов
- •Представление целых чисел (способ с фиксированной точкой)
- •Представление чисел с дробной частью (способ с плавающей точкой)
- •Некоторые важные итоги
- •О 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 События
- •События клавиатуры
- •Объекты, классы, коллекции
- •Экзаменационные вопросы
События клавиатуры
Имя события |
Когда происходит |
KeyDown |
При нажатии клавиши. Применяется для отслеживания нажатия функциональных клавиш, клавиш навигации и других, используемых для управления программой |
KeyPress |
При нажатии и затем отпускании одной из символьных клавиш. При нажатии не символьных клавиш событие не происходит |
KeyUp |
При отпускании ранее нажатой клавиши. Применяется для отслеживания нажатия функциональных клавиш, клавиш навигации и других, используемых для управления программой |
Объекты, классы, коллекции
Объектами являются форма и управляющие элементы, помещенные на форму. Есть глобальные объекты VB.
Глобальные объекты VB
Объект |
Описание |
App |
Приложение, содержит сведения об исполняющейся программе |
Clipboard |
Обеспечивает доступ к буферу обмена Windowsи позволяет программе обмениваться данными с другими приложениями. |
Debug |
Отладка. Предназначен для облегчения поиска ошибок |
Err |
Содержит информацию об ошибках периода выполнения. |
Error |
Служит для отладки приложений, работающих с базами данных |
Printer |
Позволяет обращаться к принтеру, как к объекту |
Screen |
Позволяет обращаться к экрану, как к объекту |
Объекты обладают свойствами. Значения свойств могут быть заданы на этапе визуального программирования, а также могут быть изменены кодом при выполнении приложения.
Большинство объектов кроме свойств также располагают методами. Метод позволяет выполнить определенное действие с объектом.
Вот некоторые примеры методов:
Имя метода |
Назначение |
Circle |
Позволяет нарисовать на поверхности формы или управляющего элемента PictureBoxокружность, эллипс и сектор |
Cls |
Удаляет с поверхности формы или объекта PictureBox результаты графического и текстового вывода |
Hide |
Удаляет форму с экрана без выгрузки ее из памяти |
Line |
Рисует линии и прямоугольники на рабочей поверхности формы или управляющего элемента PictureBox |
Move |
Перемещает объект в точку с заданными координатами |
PSet |
Рисует точку заданного цвета с заданными координатами на поверхности формы или управляющего элемента PictureBox |
SetFocus |
Перемещает фокус клавиатуры на данный объект |
Show |
Отображает форму на экране |
Size |
Изменяет размеры объекта |
К свойствам и методам объекта можно обратиться следующим образом:
ИмяОбъекта. Имя Свойства
ИмяОбъекта. Имя Метода
Например, выполнение приведенной ниже инструкции приведет к удалению окна формы с экрана:
Form1.Hide
Основная идея объекта состоит в том, что некоторые данные и код, предназначенный для работы с этими данными, объединяются в единое целое. Это объединение называется инкапсуляцией. Внешний код может взаимодействовать с объектом через его свойства, методы и события.
Класс представляет собой шаблон объекта. А объект в этой связи – это одна из копий, созданных по заданному классом шаблону. По аналогии с переменными класс можно рассматривать как тип, а объект, как переменную этого типа.
Объектно-ориентированные языки (С++) поддерживают инкапсуляцию, полиморфизм и наследование.
Под полиморфизмом подразумевается, что в разных классах существуют методы с одинаковыми именами и решающие при этом одинаковые задачи.
В объектно-ориентированных языках, поддерживающих наследование возможно создание новых классов на основе уже существующих. При этом вновь созданный класс обладает всеми функциональными возможностями класса-родителя. Этот механизм называют наследованием.
VBподдерживает инкапсуляцию, отчасти поддерживает полиморфизм, но не поддерживает наследование.
Возможно объявление переменной объектного типа, значением которой является объект. Синтаксис объявления такой переменной:
Public/Private/Dim ИмяПеременной As [New] ИмяОбъектногоТипа
В качестве объектного типа рекомендуется вместо общих типов ObjectиControlприменять по возможности конкретные классы (такие как, например,LabelилиTextBox). В этом случае приложение будет работать быстрее. Список конкретных классов можно увидеть в окнеObject Browser, которое можно открыть, щелкнув на кнопкена панели инструментов.
Примеры объявления переменных объектного типа:
Dim a As Object
Dim b As Control
Dim c As Label
Применение необязательного зарезервированного слова Newозначает необходимость создания нового управляющего элемента указанного типа.
Чтобы переменная объектного типа содержала ссылку на объект, следует воспользоваться инструкцией, имеющей синтаксис:
Set ИмяПеременной = [New] Ссылка
Если ссылка указывает на несуществующий объект, то применение необязательного зарезервированного слова Newприведет к созданию нового объекта.
Коллекции
Объекты и переменные могут быть объединены в коллекцию. Это позволяет производить некоторые действия со всеми входящими в коллекцию данными. Коллекция в свою очередь является объектом, она обладает свойствами и методами.
Так свойство Countсодержит число объектов коллекции.
Некоторые методы коллекций
Имя метода |
Назначение |
Item |
Позволяет выбрать объект в коллекции |
Add |
Включает объект в состав коллекции |
Remove |
Исключает объект из состава коллекции |
Коллекция должна быть объявлена программистом с применением синтаксиса:
Public/Private/Dim ИмяКоллекции As New Collection
Для работы с элементами коллекции в VB предусмотрена инструкция цикла For Each … In … Next(для каждого … в …).
Синтаксис:
For Each Экземпляр In Коллекция
[Инструкции]
[Exit For]
[Инструкции]
Next
Эта инструкция повторяет выполнение группы инструкций для каждого экземпляра коллекции.
Пример.
Объявлены коллекция и три переменные, которые включены в коллекцию. Затем все содержимое коллекции распечатано (см. рис. 18.1).
Private Sub Form_Click()
Dim List As New Collection
Dim i As Integer
Dim s As Single
Dim st As String
Dim v As Variant
i = 3
s = 1.5
st = "Test"
List.Add st
List.Add s
List.Add i
For Each v In List
Print v,
Next
End Sub
Рис. 18.1. Результат работы программы |
В VBопределены две встроенные коллекции объектов, к которым можно обращаться без их объявления:
Forms. В эту коллекцию включены все загруженные формы проекта.
Controls. Коллекция включает все управляющие элементы всех форм.
В качестве примера рассмотрим процедуру, которая текст на всех надписях делает красного цвета.
Private Sub Command1_Click()
Dim КоллекцияНадписей As New Collection
Dim x As Control
For Each x In Controls
If TypeOf x Is Label Then
КоллекцияНадписей.Add x
End If
Next
For Each x In КоллекцияНадписей
x.ForeColor = RGB(255, 0, 0)
Next
End Sub
Первый цикл в этой программе просматривает все управляющие элементы проекта. Если управляющий элемент – надпись, то он включается в коллекцию КоллекцияНадписей.
Второй цикл просматривает все элементы коллекции КоллекцияНадписейи устанавливает красный цвет текста на каждом элементе этой коллекции.
В VBпредусмотрена возможность определения новых классов. Однако эту важную тему мы вынуждены оставить за рамками нашего внимания.