>End Sub


>Rem Для того чтобы не засорять список, событие передвижения указателя

>Rem мыши над формой мы обрабатываем только при нажатой левой клавише

>Private Sub Form_MouseMove(ByVal button As Integer, ByVal shift As Integer, x, y)

>If button = 1 Then List1.AddItem «Form_MouseMove»

>End Sub


6. Перейти в окне Project Explorer к форме Form2. В ее модуле следует ввести код, приведенный в листинге 3.10.

Листинг 3.10

>Private Sub Form_QueryUnload(ByVal cancel As Integer, unloadmode)

>Form1.List1.AddItem «Form2 QueryUnload»

>End Sub


>Private Sub Form_Activate()

>Form1.List1.AddItem «Form2 Activate»

>End Sub

>Private Sub Form_Deactivate()

>Form1.List1.AddItem «Form2 Deactivate»

>End Sub

>Private Sub Form_GotFocus()

>Form1.List1.AddItem «Form2 Получила фокус»

>End Sub

>Private Sub Form_LostFocus()

>Form1.List1.AddItem «Form2 Потеряла фокус»

>End Sub

>Private Sub Form_Paint()

>Form1.List1.AddItem «Form2 перерисована»

>End Sub


>Private Sub Form_Load()

>Form1.List1.AddItem «Form2 загружена»

>End Sub


>Private Sub Form_Resize()

>Form1.List1.AddItem « Form2 Resize»

>End Sub


7. Выполнить команду меню Run ► Execute и запустить приложение в эмуляторе. На экран будет выведена первая форма.

8. После нажатия кнопки 1 на экран будет выведена вторая форма, а в ListBox будут выведены сообщения о том, какими событиями сопровождался показ этой формы.

9. Переместить форму Form2 так, чтобы форма выходила за пределы экрана. При этом будет отображено сообщение о том, что форма перерисована.

10. Нажать кнопку 3. После этого нажатия фокус ввода будет перенесен на форму Form1, а форма Form2 будет скрыта. Поэтому появятся сообщения о том, что форма Form2 деактивирована, потеряла фокус, а затем о том, что она два раза поменяла размер. Это соответствует истине, так как сначала был изменен вертикальный, а затем горизонтальный размер формы.

11. Нажать кнопку 2. Будут отображены сообщения о том, какими событиями сопровождается сокрытие формы.

12. Остановить и снова запустить приложение. Нажать кнопку 3. При этом форма Form2 не появится на экране. Тем не менее, форма эта будет загружена, и ее размер будет изменен.

13. Сделать несколько щелчков мышью на форме Form1 вне визуальных компонентов. Будут отображены сообщения о событиях, связанных с нажатием и отпусканием кнопки мыши.

14. Перевести фокус в компонент TextBox и вывести на экран виртуальную клавиатуру. Появится сообщение о выводе клавиатуры. При работе с клавиатурой появится множество соответствующих сообщений. Если нажать на алфавитно-цифровую клавишу, и не отпустить ее, то в списке не будет отображено ни одно событие, хотя должно отобразиться событие Down. Однако сразу после отпускания отображаются сразу три события – Down, Press и Up. Это не особенность eVB и не особенность виртуальной клавиатуры, это явная ошибка среды разработки, о чем сказано в базе знаний на сайте Microsoft.

15. При скрытии экранной клавиатуры будет выведено соответствующее сообщение.

16. Следует обратить внимание, что наборы сообщений во время скрытия формы Form2 при помощи метода Hide и при помощи кнопки с крестиком на форме отличаются. Во втором случае добавляется событие QueryUnload.


СОВЕТ.

Три кита, на которых стоит программирование интерфейса пользователя в eVB, – методы, свойства и события. Если описание свойств и методов довольно подробно дано в справочной системе, то события (особенно их последовательность) там описаны не так подробно. Я советую вам использовать тот же подход, который мы использовали в этом упражнении, для исследования событий других компонентов, порядка и особенности их генерации при работе компонентов в том или ином режиме, и то, какие параметры передаются в событие и какие из него возвращаются обратно приложению или операционной системе.