
- •Лабораторная работа 1
- •Лабораторная работа 2 Переменные и константы. Базовые типы. Арифметические операции
- •Операции
- •Ввод и вывод данных
- •Лабораторная работа 3 Циклический и ветвящийся поток управления
- •Алгоритмы разветвляющейся структуры
- •Операторы выбора
- •Операторы циклов
- •Операторы перехода
- •Задание
- •Лабораторная работа 4 Функции. Вызов функций с формальными параметрами, передаваемыми по значению
- •Задание
- •Лабораторная работа 5 Одномерные массивы
- •Задание
- •Лабораторная работа 6 Многомерные массивы
- •Задание
- •Лабораторная работа 7 Функции для работы с символами
- •Лабораторная работа 8 Строки, литералы. Передача строк в функции
- •Строки и литералы
- •Библиотечные функции для работы со строками
- •Выделение памяти под строки
- •Передача строк в качестве параметров функций
- •Задание
- •Лабораторная работа 9 Указатели и динамические массивы
- •Задание
- •Варианты
- •Лабораторная работа 10 Динамические структуры данных
- •Структуры и указатели
- •Задание
- •Лабораторная работа 11 Объектно-ориентированное программирование. Создание классов и объектов
- •Задание
- •Лабораторная работа 12 Знакомство со средой быстрой разработки приложений. Использование компонент библиотеки vcl
- •Лабораторная работа 13 Вывод в форму результатов работы программы
- •Лабораторная работа 14 Изучение обработчиков событий компонентов библиотеки vcl
- •Лабораторная работа 15 Использование таймера для создания различных эффектов
- •Лабораторная работа 16 Рисование в канве. Построение графиков функций
- •Лабораторная работа 17 Изучение принципа работы текстового редактора
- •Список рекомендуемой литературы
- •Оглавление
Лабораторная работа 15 Использование таймера для создания различных эффектов
Цель работы – освоить работу таймером из библиотеки VCL, научиться создавать приложения с использованием этого компонента.
Теория
Компонент Timer позволяет задавать в приложении интервалы времени. Таймер находит многочисленные применения: синхронизация мультипликации, закрытие каких-либо окон, с которыми пользователь долгое время не работает, включение хранителя экрана или закрытие связей с удаленным сервером при отсутствии действий пользователя, регулярный опрос каких-то источников информации, задание времени на ответ в обучающих программах – все, это множество задач, в которых требуется задавать интервалы времени, решается с помощью таймера.
Таймер – не визуальный компонент, который может размещаться в любом месте формы. Он имеет два свойства, позволяющие им управлять: Interval – интервал времени в миллисекундах и Enabled – доступность. Свойство Interval задает период срабатывания таймера. Через заданный интервал времени после предыдущего срабатывания, или после программной установки свойства Interval, или после запуска приложения, если значение Interval установлено во время проектирования, таймер срабатывает, вызывая событие OnTimer. В обработчике этого события записываются необходимые операции.
Если задать Interval = 0 или Enabled = false, то таймер перестает работать. Чтобы запустить отсчет времени надо или задать Enabled = true, если установлено положительное значение Interval, или задать положительное значение Interval, если Enabled = false.
Например, если требуется, чтобы через 5 секунд после запуска приложения закрылась форма-заставка, отображающая логотип приложения, на ней надо разместить таймер, задать в нем интервал Interval = 5000, а в обработчик события OnTimer вставить оператор Close, закрывающий окно формы.
Если необходимо в некоторой процедуре запустить таймер, который отсчитал бы заданный интервал, например, 5 секунд, после чего надо выполнить некоторые операции и отключить таймер, это можно сделать следующим образом. При проектировании таймер делается доступным (Enabled = true), но свойство Interval задается равным 0. Таймер не будет работать, пока в момент, когда нужно запустить таймер, не выполнится оператор:
Timerl->Interval = 5000;
Через 5 секунд после этого наступит событие OnTimer. В его обработчике надо задать оператор, который отключит таймер:
Timerl->Interval = 0;
После этого можно выполнять требуемые операции. Другой эквивалентный способ решения задачи – использование свойства Enabled. Во время проектирования задается значение Interval = 5000 и значение Enabled = false. В момент, когда надо запустить таймер выполняется оператор Timerl->Enabled = true;
В обработчик события OnTimer, которое наступит через 5 секунд после запуска таймера, можно вставить оператор:
Timerl->Enabled = false;
который отключит таймер.
Таймер точно выдерживает заданные интервалы Interval, если они достаточно велики — сотни и тысячи миллисекунд. Если же задавать интервалы длительностью десятки или единицы миллисекунд, то реальные интервалы времени оказываются заметно больше вследствие различных накладных расходов, связанных с вызовами функций и иными вычислительными аспектами.
Задание
Упражнение 1
Создайте приложение, добавьте в проект вторую форму. Используя компонент таймер сделайте так, чтобы 1-е окно показывалось 3 секунды, затем скрывалось, показывалось 2-е окно, через 3 секунды снова первое и так далее.
Упражнение 2
Создайте приложение, используя свойства формы AlphaBlend и AlphaBlendValue сделайте так, чтобы форма постепенно становилась прозрачной, затем постепенно становилась видимой и так далее.
Упражнение 3
Создайте приложение, добавьте на форму компонент Edit, используя таймер обеспечите изменение цвета в поле.