Студопедия
rus | ua | other

Home Random lecture






Практическая работа 39. Клавиатура; обработка событий KeyPress, KeyDown


Date: 2015-10-07; view: 369.


Клавиатура

События, генерируемые клавиатурой, получает объект, имеющий фокус (форма получает событие, если ни один объект не имеет фокуса). Нажатие клавиши ТАВ игнорируется, т.к. она служит для перемещения фокуса . В представлены события, связанные с клавиатурой.

Таблица 5.6. События, связанные с клавиатурой
Событие Пояснение
KeyPress Вызывается только при нажатии клавиш, имеющих ANSI-код. Возвращается код ANSI нажатой клавиши; синтаксис:Control_KeyPress(KeyAscii As Integer)
KeyDown Возникает при нажатии любой клавиши; синтаксис: Control_KeyDown(KeyCode As Integer, Shift As Integer)
KeyUp Возникает при отпускании любой клавиши; синтаксис: Control_KeyUp(KeyCode As Integer, Shift As Integer)

Параметр Shift даeт информацию о состоянии клавиш Shift, Ctrl, Alt.

При обработке 2-х последних событий используются клавишные константы (например, vbKeyLeft, vbKeyUp и.т.д), а не ANSI-код. Список KeyCodeConstants находится в каталоге объектов (Members of KeyCodeConstants; Class: KeyCodeConstans).

Последовательность действий:

· Создать на форме элементы управления Image и два поля Label: у первого значение Name = lbl1, второе используется для надписи, внизу, см. также код, данный ниже,

· ввести код, стартовать проект,

· нажимать клавиши клавиатуры со стрелками, наблюдать перемещение объекта Image (см. использование метода Move: img1.Move x, y в процедуре Private Sub Form_KeyDown(keycode As Integer, shift As Integer)),

· нажимать клавиши с символами, наблюдать смену данных в поле метки (обработка события КeyРress), см. процедуру Private Sub Form_KeyPress(keyascii As Integer).

(General) (Declarations)Dim x As Integer, y As Integer Private Sub Form_KeyPress(keyascii As Integer)lbl1.Caption = Chr(keyascii)End Sub Private Sub Form_KeyDown(keycode As Integer, shift As Integer)Select Case keycodeCase vbKeyLeftx = x - 350If x <= 0 Thenx = frm.Width - img1.WidthEnd IfCase vbKeyUpy = y - 350If y <= 0 Theny = frm.Height - img1.HeightEnd IfCase vbKeyRightx = x + 350If x >= frm.Width Thenx = 0End IfCase vbKeyDowny = y + 350If y >= frm.Height Theny = 0End IfEnd Select img1.Move x, yEnd Sub


Рис. 5.9.Клавиатура; Event KeyPress, Evens KeyDown, KeyUp

Лекция 6:


<== previous lecture | next lecture ==>
В. Мышь; перетаскивание элементов списков | Обмен данными
lektsiopedia.org - 2013 год. | Page generation: 0.007 s.