саме клавішу миші натиснув користувач, і тому перетягування можна здійснювати довільною клавішею. Перевірити клавіші миші можна, проаналізувавши аргумент Button (типу Integer) наведених процедур:
Значення Button |
Натиснуті кнопки миші
1 |
ліва
2 |
права
3 |
ліва І права
4 |
середня
5 |
ліва І середня
6 |
права І середня
7 |
ліва, права І середня
Координати вказівника миші передаються у процедуру за допомогою аргументів х і у типу Integer. 12.Аналогічно запрограмуйте відповідні події для перетягування двох інших малюнків. 13. Створіть власну функцію ImagelnShape для перевірки розта-шування малюнка (об'єкта Image) в середині деякої геомет-ричної фігури (об'єкта Shape).
Послідовність створення власної процедури описана у пункті 7 ; попередньої роботи.
Public Function ImageInShape(I As Image, S As Shape) If I.Left >= S.Left And I.Left + I.Width <= S.Left + S.Width And _ I. Top >= S.Top And _ I.Top + I. Height <= S.Top + S.Height Then ImagelnShape = True 'Малюнок є в середині фігури Else ImagelnShape = False 'Малюнок є поза фігурою End If End Function
14.Запрограмуйте кнопку "Готово", яка перевіряє правильність розташування малюнків в середині фігур і висвітлює стан-дартне інформаційне вікно Windows з повідомленням "Пра-вильно!" чи "Не правильно!".
Private Sub Commandl_Click() Timer 1. Enabled = False 'Зупиняємо блимання Labell Timer 2. Enabled = False 'Зупиняємо індикатор часу If ImageInShape(Imagel, Shape2) And _ ImageInShape(Image2, Shape3) And _ ImageInShape(Image3, Shape 1) Then 'Зчитуємо файл аплодування MediaPlayerl.FileName = "applause.wav" 'Відкриваємо вікно повідомлення "Правильно!" MsgBox "Правильно!" Else: MediaPlayerl.FileName = "notify.wav" 'Відкриваємо вікно повідомлення "Неправильно!" MsgBox "Неправильно!" 'Вмикаємо обидва таймери та індикатор часу Timer I. Enabled = True Timer2. Enabled = True ProgressBarl. Value =100 End If End Sub
15.Запрограмуйте другий таймер, який забезпечує індикацію часу виконання від 100% до О.
Якщо користувач не встиг розташувати малюнки у прямо-кутниках і натиснути на кнопку "Готово" у відведений час, по-дається відповідний звук і відкривається стандартне інформаці-йне вікно Windows з повідомленням "Не встигли. Спробуйте ще раз!". Після того, як користувач натисне на кнопку Ok цього вікна, знову запускаються таймери блимання підпису в нижній частині вікна і руху індикатора часу. |
Private Sub Timer2__Timer() 'Працює індикатор часу: ProgressBarl . Value = ProgressBarl. Value - 1 If ProgressBarl. Value = 0 Then 'Якщо час вичерпано Timer 1. Enabled = False Timer2. Enabled = False MediaPlayerl.FileName = "chimes.wav" MsgBox "He встигли. Спробуйте ще раз!" Timer 1. Enabled = True Timer2. Enabled = True ProgressBarl. Value = 100 End If End Sub
______________________________I
16.Збережіть програму та проект у робочій папці.
ІТ.Скопіюйте музичні файли chimes.wav, applause.wav та notify.wav у свою робочу папку та папку Visual Basic C:\ Program Files \ Microsoft Visual Studio \ VB98 з папок С:\ WINDOWS \ MEDIA \ Office97 та С: \ WINDOWS \ MEDIA.
18.Запустіть програму. Перетягуйте мишею малюнки в середину відповідних фігур.
Задача 5.1. Забезпечте можливість перетягування малюнків лише лівою клавішею миші (див. пункт 11).
Задача 5.2. Збільшіть удвічі частоту блимання тексту "Обо в'язково натисніть на кнопку "Готово" після розміщення рисунків!!".
Задача 5.3. Змініть тип (властивість Orientation) індикатора ста-ну на вертикальний, скоригувавши форму і розташування об'єктів.
Задача 5.4. Підберіть найвдалішу швидкість руху індикатора часу.
Задача 5.5. Вставте у форму три додаткові рисунки, фігури та підписи до них. Змініть текст програми, передбачивши у ній опрацювання доданих об'єктів.