- •1. Специальные конструкции языка 6
- •Введение
- •Специальные конструкции языка
- •Пользовательские типы данных
- •Типизированные файлы
- •Текстовые файлы
- •Нетипизированные файлы
- •Обработка ошибок
- •Оператор On Error
- •Объект Err
- •Обработка событий мыши и клавиатуры
- •Обработка событий мыши
- •Обработка событий клавиатуры
- •1.5. Элемент управления MaskedEdit
- •Графика
- •Элементы управления для графических изображений
- •Генерация графических изображений (примитивов)
- •Графические методы
- •Координаты элементов управления.
- •Примеры использования графических методов
- •Задания для самостоятельной работы
- •Работа с таймером
- •Анимация графических изображений
- •Основные свойства и методы
- •Примеры создания эффектов анимации
- •Варианты заданий по анимации для самостоятельной работы
- •Стандартные диалоговые окна
- •Работа с базами данных в vb
- •Элемент управления Data
- •Объект Recordset
- •Элемент управления msFlexGrid
- •Элемент управления ms Data Bound Grid
- •Использование языка sql в vb для работы с базами данных
- •Литература
Объект Err
Объект Err содержит описание последней ошибки, произошедшей при выполнении программы. Рассмотрим основные свойства и методы объекта.
Свойства объекта Err.
Свойство Number — целое число, которое указывает код последней произошедшей ошибки. Для определения возвращаемых ошибок следует контролировать значение Err.Number.
В некоторых случаях можно исправить ошибку и позволить пользователю продолжить работу, не прерывая обработку. В других случаях необходимо сообщить пользователю об ошибке и, основываясь на его ответе, выполнить некоторое действие.
Свойство Description — строка, которая содержит описание ошибки.
Свойство Source содержит имя приложения, которое сгенерировало ошибку. Например, если пользователь вызывает Microsoft Excel и он генерирует ошибку, Err.Number будет содержать код ошибки, a Err.Source устанавливается равным Excel.Application.
Некоторые значения часто возникающих ошибок выполнения (значения свойства Number) приведены в таблице 1.2.
Таблица 1.2
Значения наиболее часто возникающих ошибок
Код ошибки |
Объяснение |
0 |
Нет ошибок |
6 |
Переполнение памяти |
11 |
Деление на ноль |
53 |
Файл не найден |
57 |
Ошибка ввода / вывода (например, попытка печати при выключенном принтере). |
68 |
Устройство недоступно (устройство не существует или недоступно в данный момент). |
Методы объекта Err.
Метод Clear сбрасывает значение Err.Number в ноль.
Метод Raise устанавливает ошибку. Этот метод используется для передачи ошибки обратно в вызывающую процедуру или тестирования кода обработки ошибок. Например: Err.Raise 53 ' Установить ошибку "Файл не найден"
Обработка событий мыши и клавиатуры
Обработка событий мыши
В Visual Basic поддерживаются следующие основные события мыши (таблица 1.3). Обработка событий Cick и DblClick.
Процедура обработки события Click имеет синтаксис:
Private Sub Имя_элемента_управления_Click()
Программный код обработки события
End Sub
Процедура обработки события DblClick имеет синтаксис:
Private Sub Имя_элемента_управления_DblClick()
Программный код обработки события
End Sub
Таблица 1.3
События мыши
Событие |
Описание |
Click/DblClick |
Событие происходит при щелчке/двойном щелчке мыши |
MouseDown |
Происходит, когда нажимается кнопка мыши |
MouseMove |
Генерируется при перемещении мыши |
MouseUp |
Генерируется при отпускании кнопки мыши. Возникает после события MouseDown |
Рассмотрим пример программы обработки события Cick и DblClick.
Пример 1.4. Программа по щелчку или двойному щелчку по метке с надписью “СОБЫТИЕ” выводит сообщение “Щелчок” или “Двойной щелчок” в текстовом окне.
Последовательность разработки программы следующая:
1. В форму поместим элементы управления: метку Label1 и текстовое окно Text1.
2. В процедуру обработки события Form_Load () введем код:
Private Sub Form_Load ()
Label1.Caption=“СОБЫТИЕ”
Text1.text=“”
End Sub
3. В процедуру обработки события Label1_Click () введем код:
Private Sub Label1_Click ()
Text1.text=“Произведен один щелчок”
End Sub
4. В процедуру обработки события Label1_DblClick () введем код:
Private Sub Label1_DblClick ()
Text1.text=“Произведен двойной щелчок”
End Sub
5. Запустим программу на выполнение. После щелчка по метке с надписью “СОБЫТИЕ” в текстовом окне появится сообщение “Произведен один щелчок”, а после двойного щелчка – “Произведен двойной щелчок”.
Обработка событий MouseUp и MouseDown. Процедуры событий MouseUp и MouseDown имеют соответственно следующий синтаксис:
Private Sub Имя_элемента_управления_MouseDown(Button
As Integer, Shift As Integer,
X As Single, Y As Single)
Программный код обработки события
End Sub
Private Sub Имя_элемента_управления_MouseUp(Button
As Integer, Shift As Integer,
X As Single, Y As Single)
Программный код обработки события
End Sub
где
Имя_элемента_управления – имя элемента управления, в области которого возникло событие;
MouseDown | MouseUp – обрабатываемое событие
Button – целое число или константа, сообщающие о том, какие кнопки мыши нажаты;
Shift – целое число, сообщающее о том какие из клавиш [Shift], [Ctrl], или [Alt] нажаты;
X – координата указателя мыши по горизонтали;
Y – координата указателя мыши по вертикали;
Допустимые значения параметров Button и Shift приведены соответственно в таблицах 1.4 и 1.5.
Таблица 1.4
Основные значения и описание параметра Button
Десятичное представление |
Константа |
Нажатые клавиши |
0 |
|
Нет |
1 |
vbLeftButton |
Левая |
2 |
vbRightButton |
Правая |
4 |
vbMiddleButton |
Средняя |
Таблица 1.5
Основные значения и описание параметра Shift
Десятичное представление |
Константа |
Нажатые клавиши |
0 |
|
Нет |
1 |
vbShiftMask |
Shift |
2 |
vbCtrlMask |
Ctrl |
4 |
vbAltMask |
Alt |
Пример 1.5. В следующем фрагменте программы при нажатии кнопки мыши на поле формы frMouse в соответствующих метках (lblMouse, lblButton, lblShift) появляется сообщение о координатах мыши, ее нажатой кнопке и комбинации управляющих клавиш.
Private Sub frMouse_MouseDown(Button As Integer,
Shift AsInteger, X As Single, Y As Single)
Dim strButton As String ‘ для преобразованного значения
параметра Button
Dim strShift As String ‘ для преобразованного значения
параметра Shift
Dim strX As String ‘ для преобразованного значения параметра X
Dim strY As String ‘ для преобразованного значения параметра Y
‘преобразование целых значений параметров X и Y в строки
StrX=Cstr(X)
StrY=Cstr(Y)
‘проверка значения Shift с помощью оператора выбора Select Case для выяснения того, какие из клавиш Shift, Ctrl, Alt нажаты, здесь же происходит присвоение результата проверки строковой переменной strShift
Seleсt Case Shift
Case 0
StrShift =“”
Case 1
StrShift =“Shift”
Case 2
StrShift =“Ctrl”
Case 3
StrShift =“Shift + Ctrl”
Case 4
StrShift =“Alt”
Case 5
StrShift= “Shift + Alt”
Case 6
StrShift= “Ctrl + Alt”
Case 7
StrShift =“ Shift + Ctrl+ Alt”
End Select
‘проверка значения Button с помощью оператора выбора Select Case для определения комбинации нажатых клавиш мыши, здесь же происходит присвоение результата проверки строковой переменной StrButton
Select Case Button
Case 0
StrButton = “”
Case 1
StrButton = “Left”
Case 2
StrButton = “Right”
Case 3
StrButton = “Left + Righ”
Case 4
StrButton = “Middle”
Case 5
StrButton = “Left + Middle”
Case 6
StrButton = “Right + Middle”
Case 7
StrButton = “All”
End Select
‘сообщение о вызове соответствующего события
lblMouse.Caption = “Событие MouseDown”
‘сообщение о том, какая комбинация клавиш нажата
lblShift.Caption = StrShift
‘сообщение о том, какие кнопки мыши нажаты
lblButton.Capton = StrButton
End Sub
Private Sub frMouse_MouseUp(Button As Integer, Shift
As Integer, X As Single, Y As Single)
‘сообщение о вызове соответствующего события
lblMouse.Caption = “Событие MousUp”
End Sub
Обработка события MouseMove. Процедура этого события имеет синтаксис:
Private Sub Имя_элемента_управления_MouseMove(Button
As Integer, Shift As Integer, X As Single,
Y As Single)
Код обработки события
End Sub
где:
Имя_элемента_управления – имя элемента управления, в области которого произошло событие;
MouseMove – обрабатываемое событие
Button – целое число, сообщающее о том, какие кнопки мыши нажаты;
Shift – целое число, сообщающее о том какие из клавиш [Shift], [Ctrl], или [Alt] нажаты;
X – координата указателя мыши по горизонтали;
Y – координата указателя мыши по вертикали.
Допустимые значения параметров Button и Shift приведены соответственно в таблицах 1.4 и 1.5.
Пример 1.6. Генерация вывода информации в метку lblCursor о положении указателя мыши на поле формы frMouse.
Private Sub frMouse_MouseMove (Button As Integer,
Shift As Integer, X As Single, Y As
Single)
Dim strX As String ‘ для преобразованного значения параметра X
Dim strY As String ‘ для преобразованного значения параметра Y
‘преобразование целых значений параметров X и Y в строковые
StrX=Cstr(X)
StrY=Cstr(Y)
‘ вывод на экран информации о положении указателя мыши
lblCursor.Caption = “X:” + strX + “,” + “Y:” +strY
End Sub