Размещение элементов управления на листе . Упражнение 15. «Бабочка». Задание. Разместить на листе объект РИСУНОК, кнопку ПОЛЁТ и кнопку ДОМОЙ. Написать код программы, в результате которого при щелчке по кнопке ПОЛЁТ объект РИСУНОК должен двигаться к выделенной ячейке. При щелчке по кнопке ДОМОЙ объект РИСУНОК должен скачком уходить к ячейке А1. Порядок выполнения.
Убедиться, что на диске компьютера есть файлы - картинки бабочки с открытыми крыльями и закрытыми крыльями BFLY1.bmp и BFLY2.bmp.
Приготовить чистый лист. Дать ему имя «Бабочка». Вызвать панель управления Visual Basic (Вид- ПАНЕЛИ ИНСТУМЕНТОВ –ЭЛЕМЕНТЫ УПРАВЛЕНИЯ). Войти в режим конструктора, щёлкнув по голубому треугольнику на панели ЭЛЕМЕНТЫ УПРАВЛЕНИЯ.
Выбрать на панели ЭЛЕМЕНТЫ УПРАВЛЕНИЯ инструмент «Рисунок» и разместить три объекта «Рисунок» в любой области таблицы. Настроить свойства объектов:
Первый объект «Рисунок»- Name- Img
Autosize – True
BackColor- белый
BorderColor- белый
Второй объект «Рисунок»– Name –Img1
Autosize – True
BackColor- белый
BorderColor- белый
Visible – Fale
Picture- щёлкнуть по трём точкам и по файловой системе найти файл BFLY1.
Третий объект «Рисунок»- Name –Img2
Autosize – True
BackColor- белый
BorderColor- белый
Visible – Fale
Picture- щёлкнуть по трём точкам и по файловой системе найти файл BFLY2.
Выбрать на панели управления инструмент «кнопка» и разместить его на листе. Настроить свойства кнопки:
Caption –Полёт
Name- CmdFly
Разместить на листе ещё одну кнопку и настроить её таким образом:
Caption- ДОМОЙ
Name- CmdHome.
В результате на листе в режиме конструктора будут видны следующие объекты (рис.63):
Рис. 63
Щёлкнуть два раза отрывисто по кнопке CmdFly (Полёт) и войти в процедуру обработки события CmdFly_Click, щелчка по кнопке ПОЛЁТ. Написать следующий код:
Private Sub cmdfly_Click()
Dim i As Integer Объявляем вспомогательную переменную i (будет управлять открытием –закрытием крыльев)
Dim t As Single Объявляем вспомогательную переменную t (будет управлять скоростью процессов)
Do Запускаем бесконечный цикл полёта.
If i Mod 2 = 0 Then Если i чётное, то
Img.Picture = Img1.Picture открытые крылья
Else Иначе
Img.Picture = Img2.Picture Закрытые крылья
End If t = Timer фиксируем время
Do Запускаем пустой цикл задержки на 0,5 сек иначе всё будет происходить слишком быстро
DoEvents оператор прерывания процедуры «осмотрись»
Loop While Timer - t < 0.5 Закрываем цикл задержки 0,5сек.
Img.Left = Img.Left + (ActiveCell.Left - Img.Left) / 10 Задаём траекторию
Img.Top = Img.Top + (ActiveCell.Top - Img.Top) / 10 движения по направлению
к выделенной ячейке
i=i+1 изменяем значение параметра i
If i> 100 THEN i=0 делаем защиту от переполнения по i
DoEvents вставляем оператор прерывания
Loop Закрываем бесконечный цикл полёта
End Sub
Щёлкнуть два раза отрывисто по кнопке ДОМОЙ и внести следующий код:
Private Sub cmdhome_Click()
Img.Left = 0 Приводим бабочку в ячейку А1
Img.Top = 0
End Закрываем программу
End Sub
Закончить режим конструктора и убедиться, что при щелчке по кнопке «Полёт» бабочка летит к выделенной ячейке, а при щелчке по кнопке «ДОМОЙ» бабочка скачком возвращается в начало координат.
Самостоятельная работа 20. Задание. Изменить код программы «Бабочка» таким образом, чтобы:
бабочка махала крыльями чаще в 5 раз.
Чтобы бабочка подлетала к выделенной ячейке в два раза быстрее.
|