Разработка проекта «Сдвинь меня

advertisement
10-А класс. Информатика.
Visual Basic 6.0
Тема: События в Visual Basic.
Ход лекции:
На прошлой лекции мы уже говорили о том, что программы управляются событиями. Каждый
раз, когда выполняется щелчок по кнопке, перемещается мышка по форме, меняется размер
элемента или изменяется содержимое в поле текста и т.д., происходит определенное событие. Для
организации реакции на это событие пишется программный код, включаемый в процедуру
обработки события. Разные элементы могут иметь разные события, но у многих элементов
существуют одинаковые события (Click, MouseUp, GotFocus). Просмотреть список свойств элемента
можно с помощью окна редактирования кода.
Список элементов и объектов
Список свойств элемента и объекта
Окно редактирования кода
Программировать все события для элемента нет необходимости. Программируются только те
события, которые ожидаются в результате исполнения программы. Для программирования
события необходимо на этапе проектирования дважды щёлкнуть по объекту. Появляется окно
редактирования кода и в нём заголовок и окончание процедуры события, выбираемого для
данного объекта по умолчанию. Например, для формы это будет событие загрузки формы Form_Load.
Private Sub Form_Load()
End Sub
Между заголовком и окончанием процедуры вставляется код обработки события. Если
необходимо запрограммировать другое событие, то из раскрывающегося списка элементов
выбирается необходимый элемент, а из раскрывающегося списка событий выбирается нужное
событие. Например, для формы выберем событие нажатия кнопки мыши.
Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
End Sub
Рассмотрим некоторые часто используемые события на примере событий формы и кнопок (frm1 имя формы, cmd1 - имя кнопки):
 Click – пользователь щёлкает на объекте кнопкой мыши.
Private Sub cmd1_Click()
End Sub

DblClick – пользователь дважды щёлкает на объекте кнопкой мыши.
Private Sub Form_DblClick()
End Sub

Form_Load – возникает после загрузки формы в память компьютера и до появления её на
экране монитора. Это событие используют для окончательной настройки
внешнего вида формы.
Private Sub Form_Load()
End Sub

GotFocus – объект получает фокус, то есть он становится активным. Анализируя это
событие, можно определить с каким объектом в данный момент работает
программа.
Private Sub cmd1_GotFocus()
End Sub

MouseDown – нажимается кнопка мыши при условии, что указатель мыши находится на
объекте.
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
End Sub
Где, параметры:
Button – код нажатой кнопки, принимающий следующие значения:
Нажатые клавиши
Button
Левая
1
Правая
2
Левая и правая
3
Средняя
4
Левая и средняя
5
Правая и средняя
6
Все
7
Shift – определяет комбинацию нажатия клавиш Ctrl, Alt и Shift
Комбинация клавиш
Shift
Ctrl
Alt
Shift + Ctrl
Sift + Alt
Ctrl + Alt
Sift + Ctrl + Alt
Shift
1
2
3
4
5
6
7
X,Y – координаты указателя мыши по осям x и y.

MouseUp – отпускается кнопка мыши при условии, что указатель мыши находится на объекте.
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
End Sub
Где, параметры имеют те же значения, что и в событии MouseDown.
Разработка проекта «Сдвинь меня»
Разработаем проект, в котором с помощью четырёх кнопок будем выполнять перемещение формы
в угловые точки экрана. В метке расположенной на форме будем сообщать о нажатии кнопок и щелчках
кнопкой мыши в области формы. Внешний вид заготовки формы показан на рис. 1.
cmd1
cmd3
frm1
lbl1
cmd2
cmd4
Рис. 1. Заготовка формы
Напомним, что форма имеет свойства: Left – расстояние от левого края экрана до левого верхнего
угла формы; Top - расстояние от верхнего края экрана до левого верхнего угла формы; Height – высота
формы; Width – ширина формы.
В Visual Basic имеется объект Screen. Этот объект идентифицируется с экраном монитора. У него
также присутствуют свойства Height и Width. Используя указанные свойства, обеспечим перемещение
формы по экрану.
Надписи на кнопках управления выполним в процессе выполнения программы в событии
Form_Load.
Private Sub Form_Load()
cmd1.Caption = "Влево вверх"
cmd2.Caption = "Влево вниз"
cmd3.Caption = "Вправо вверх"
cmd4.Caption = "Вправо вниз"
lbl1.Caption = ""
End Sub
Строка lbl1.Caption = "" выполняет очистку поля метки от предыдущего вывода. Код для перемещения
формы добавим в событие Click кнопок. Например, при нажатии кнопки «Влево вниз» свойство Left
формы должно равняться нулю, а свойство Top определяется как разница высоты экрана и высоты
формы.
Private Sub cmd2_Click()
frm1.Top = Screen.Height - frm1.Height
frm1.Left = 0
End Sub
Клавиши cmd1, cmd3, cmd4 программируются аналогично.
Используя событие GotFocus просигнализируем в метке lbl1 о моменте нажатия соответствующей
клавиши. Приведём код для клавиши «Влево вверх»:
Private Sub cmd1_GotFocus()
lbl1.Caption = "Нажата клавиша Влево вверх"
End Sub
Момент нажатия на другие три клавиши опишите самостоятельно.
Сообщение о нажатии на кнопку мыши опишем в событии Form_MouseDown:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
lbl1.Caption = "Клавиша мышки нажата"
End Sub
Самостоятельно опишите момент отпускания кнопки мыши в событии Form_MouseUp.
Результат работы программы показан на Рис. 2.
Рис. 2. результат работы программы
ПРОГРАММА «СДВИНЬ МЕНЯ»
Private Sub cmd1_Click()
frm1.Top = 0
frm1.Left = 0
End Sub
Private Sub cmd1_GotFocus()
lbl1.Caption = "Нажата клавиша Влево вверх"
End Sub
Private Sub cmd2_Click()
frm1.Top = Screen.Height - frm1.Height
frm1.Left = 0
End Sub
Private Sub cmd2_GotFocus()
lbl1.Caption = "Нажата клавиша Влево вниз"
End Sub
Private Sub cmd3_Click()
frm1.Top = 0
frm1.Left = Screen.Width - frm1.Width
End Sub
Private Sub cmd3_GotFocus()
lbl1.Caption = "Нажата клавиша Вправо вверх"
End Sub
Private Sub cmd4_Click()
frm1.Top = Screen.Height - frm1.Height
frm1.Left = Screen.Width - frm1.Width
End Sub
Private Sub cmd4_GotFocus()
lbl1.Caption = "Нажата клавиша Вправо вниз"
End Sub
Private Sub Form_Load()
cmd1.Caption = "Влево вверх"
cmd2.Caption = "Влево вниз"
cmd3.Caption = "Вправо вверх"
cmd4.Caption = "Вправо вниз"
lbl1.Caption = ""
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
lbl1.Caption = "Клавиша мышки нажата"
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
lbl1.Caption = "Клавиша мышки отжата"
End Sub
Download