Лекция 3: 2 Для создания возможности использования объектов файловой системы нужно подключить библиотеку DLL, содержащую эти объекты: меню Разработать > Ccылки > Microsoft Scriptlet Component (сделать щелчок на соответствующем элементе управления CheckBox). Не могу найти меню Разработать (Develop)>Links и т.д. |
Макросы. Дальнейшая информация об объектах
38в. Мышь; перетаскивание элементов списков
- Создать на форме два текстовых поля,
- свойствам DragIcon обoих полей списка присвоить одно из значенией: :\Program File\Microsoft Visual Studio\Common\Graphics\Icons\DragDrop\Drag1pg.ico, : \Drag3pg.ico, : \Drop1pg.ico,
- ввести код, данный ниже,
- стартовать проект, маркировать элементы первого поля списка, перетаскивать их поочерeдно во второе поле списка и наоборот, рис. 5.8.
Пояснения: процедура Form_Load () обеспечивает создание элементов списка первого поля списка. Две процедуры Private Sub lstK_DragDrop(Source As Control, X As Single, Y As Single) обеспечивают возможность перетаскивания элемента списка в другое поле списка и удаление его из первого поля. В процедурах:
Private Sub lstК_MouseDown(Button As Integer, Shift As Integer,_ X As Single, Y As Single),
см. ниже, используется параметр 1 ("ListК.Drag 1").
Private Sub Form_Load() lst1.AddItem "Buch" lst1.AddItem "Heft" lst1.AddItem "Bleistift" End Sub Private Sub lst1_DragDrop(Source As Control, X As Single, Y As Single) If Source = lst2 Then lst1.AddItem lst2 lst2.RemoveItem lst2.ListIndex End If End Sub Private Sub lst1_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) lst1.Drag 1 End Sub Private Sub lst2_DragDrop(Source As Control, X As Single, Y As Single) If Source = lst1 Then lst2.AddItem lst1 lst1.RemoveItem lst1.ListIndex End If End Sub Private Sub lst2_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) lst2.Drag 1 End Sub
Клавиатура
События, генерируемые клавиатурой, получает объект, имеющий фокус (форма получает событие, если ни один объект не имеет фокуса). Нажатие клавиши ТАВ игнорируется, т.к. она служит для перемещения фокуса . В табл. 5.6 представлены события, связанные с клавиатурой.
Параметр Shift даeт информацию о состоянии клавиш Shift, Ctrl, Alt.
При обработке 2-х последних событий используются клавишные константы (например, vbKeyLeft, vbKeyUp и.т.д), а не ANSI-код. Список KeyCodeConstants находится в каталоге объектов (Members of KeyCodeConstants; Class: KeyCodeConstans).
Практическая работа 39. Клавиатура; обработка событий KeyPress, KeyDown
Последовательность действий:
- Создать на форме элементы управления Image и два поля Label: у первого значение Name = lbl1, второе используется для надписи, рис. 5.9 внизу, см. также код, данный ниже,
- ввести код, стартовать проект,
- нажимать клавиши клавиатуры со стрелками, наблюдать перемещение объекта 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 keycode Case vbKeyLeft x = x - 350 If x <= 0 Then x = frm.Width - img1.Width End If Case vbKeyUp y = y - 350 If y <= 0 Then y = frm.Height - img1.Height End If Case vbKeyRight x = x + 350 If x >= frm.Width Then x = 0 End If Case vbKeyDown y = y + 350 If y >= frm.Height Then y = 0 End If End Select img1.Move x, y End Sub