![]() |
Практическая работа 39. Клавиатура; обработка событий KeyPress, KeyDownDate: 2015-10-07; view: 369. Клавиатура События, генерируемые клавиатурой, получает объект, имеющий фокус (форма получает событие, если ни один объект не имеет фокуса). Нажатие клавиши ТАВ игнорируется, т.к. она служит для перемещения фокуса . В представлены события, связанные с клавиатурой.
Параметр 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
Лекция 6:
|