- •1. Специальные конструкции языка 6
- •Введение
- •Специальные конструкции языка
- •Пользовательские типы данных
- •Типизированные файлы
- •Текстовые файлы
- •Нетипизированные файлы
- •Обработка ошибок
- •Оператор On Error
- •Объект Err
- •Обработка событий мыши и клавиатуры
- •Обработка событий мыши
- •Обработка событий клавиатуры
- •1.5. Элемент управления MaskedEdit
- •Графика
- •Элементы управления для графических изображений
- •Генерация графических изображений (примитивов)
- •Графические методы
- •Координаты элементов управления.
- •Примеры использования графических методов
- •Задания для самостоятельной работы
- •Работа с таймером
- •Анимация графических изображений
- •Основные свойства и методы
- •Примеры создания эффектов анимации
- •Варианты заданий по анимации для самостоятельной работы
- •Стандартные диалоговые окна
- •Работа с базами данных в vb
- •Элемент управления Data
- •Объект Recordset
- •Элемент управления msFlexGrid
- •Элемент управления ms Data Bound Grid
- •Использование языка sql в vb для работы с базами данных
- •Литература
Обработка событий клавиатуры
В Visual Basic обрабатываются три вида событий клавиатуры (таблица 1.6)
Таблица 1.6
Обработка событий клавиатуры
Событие |
Описание |
KeyPress |
Генерируется, когда нажимается, а затем отпускается одна из клавиш, имеющих код в таблице ASCII |
KeyDown |
Генерируется при нажатии любой клавиши |
KeyUp |
Генерируется при отпускании клавиши |
Обработка события KeyPress. Если в процессе выполнения программы пользователь нажимает клавишу клавиатуры, то Windows вызывает событие KeyPress сначала для формы, имеющей фокус, а затем для элемента управления, имеющего фокус.
Синтаксис процедуры обработки события имеет синтаксис:
Private Sub Имя_элемента_управления_KeyPress(KeyAscii
As Integer)
Код обработки события
End Sub
где Имя_элемента_управления – имя элемента управления, в области которого
произошло событие;
KeyPress– обрабатываемое событие
KeyAscii – код из таблицы ASCII, соответствующий нажатой клавише.
Пример 1.7. Пусть при вводе символа в текстовое окно в окне сообщений выводится значение его кода и введенный символ.
При решении данной задачи необходимо выполнить следующее:
1. В форме разместить текстовое окно с именем Text1.
2. В процедуру обработки события KeyPress элемента управления Text1 ввести следующий программный код:
Private Sub Text1_KeyPress(KeyAscii As Integer)
‘ объявление переменных
Dim ChrPressed As String ‘ для хранеия введенного символа
Dim AscNum As String ‘ для хранения кода ASCII
Dim Msg As String ‘ для хранения строки сообщения
ChrPressed = Chr (KeyAscii) ‘преобразование значения
параметра в символ
AscNum = CStr (KeyAscii) ‘преобразование числа в строку
символов
‘формирование сообщения
Msg = Msg + “ASCII код ” +AscNum
Msg = Msg + “,” + “ символ ” + ChrPressed
MsgBox Msg
End Sub
3. Запустить программу на выполнение. При нажатии клавиши в окне сообщения будет выдаваться информация о введенном символе и его коде.
Обработка событий KeyUp и KeyDown. Когда на клавиатуре нажимается любая клавиша, то для элемента управления, находящегося в фокусе, генерируется событие KeyDown, при отпускании клавиши – событие KeyUp.
Синтаксис этих событий имеет вид:
Privat Sub Имя_элемента_управления_KeyUp(KeyCode as
Integer, Shift As Integer)
Код обработки события
End Sub
Privat Sub Имя_элемента_управления_KeyDown(KeyCode as
Integer, Shift As Integer)
Код обработки события
End Sub
где Имя_элемента_управления – имя элемента управления, вызвавшего событие;
KeyUp|KeyDown– обрабатываемое событие;
KeyCode – целое число, передающее значение константы нажимаемой или отпускаемой клавиши. Этот параметр поддерживает код не только обычной клавиши, но и функциональных клавиш, клавиш на числовой клавиатуре, клавиши со стрелками и других.
Shift – целое число, которое сообщает о том, были ли нажаты клавиши [Shift], [Ctrl], [Alt]. Допустимые значения параметра Shift приведены в таблице 1.5, а параметра KeyCode в таблице 1.7.
Таблица 1.7
Константы для некоторых клавиш
Константа |
Значение |
Клавиша |
vbKeyBack |
8 |
Backspase |
vbKeyControl |
17 |
Ctrl |
vbKeyDelete |
46 |
Delete |
vbKeyDown |
40 |
|
vbKeyEnd |
35 |
End |
vbKeyEscape |
27 |
Escape |
vbKeyHome |
36 |
Home |
vbKeyInsert |
45 |
Insert |
vbKeyLeft |
37 |
|
vbKeyPageDown |
34 |
PageDown |
vbKeyPageUp |
33 |
PageUp |
vbKeyRight |
39 |
|
vbKeyShift |
16 |
Shift |
vbKeySpase |
32 |
Пробел |
vbKeyTab |
9 |
Tab |
vbKeyUp |
38 |
|