99558

Элемент управления Timer

Доклад

Информатика, кибернетика и программирование

Элемент управления Timer Каждый таймер имеет свойство interval Интервал которое определяет количество миллисекунд между последовательными событиями таймера. Если оно установлено таймер продолжает получать информацию от некоего события соответственно названное событие Timer через приблизительно равные промежутки времени. Свойство interval имеет несколько ограничений которые следует учитывать при программирование таймера: – Если приложение выполняет операции требующие больших затрат системных ресурсов например длинные циклы...

Русский

2016-09-23

242 KB

0 чел.

Элемент управления Timer

Элементы управления Timer (Таймер) (рис. 1) независимы от пользователя, и их можно использовать для программирования действий, которые должны выполняться через определенные промежутки времени. Их типичное применение — определение времени выполнения некоторого действия. Таймеры также полезны для других фоновых процессов

Рис. 1. Элемент управления Timer

Каждый таймер имеет свойство interval (Интервал), которое определяет количество миллисекунд между последовательными событиями таймера. Если оно установлено, таймер продолжает получать информацию от некоего события (соответственно названное событие Timer) через приблизительно равные промежутки времени.

Свойство interval имеет несколько ограничений, которые следует учитывать при программирование таймера:

– Если приложение выполняет операции, требующие больших затрат системных ресурсов, например, длинные циклы, интенсивные вычисления или доступ к диску, сети или порту, то приложение может не получать события Timer с частотой, заданной в свойстве interval

– Свойство interval может принимать значение от 0 до 64767 миллисекунд, а это означает, что длительность интервала не может быть намного больше одной минуты (64,8 секунды)

– Задание интервала не гарантирует, что внутреннее время таймера отсчитывается точно. Чтобы обеспечить точность, таймер должен сверяться при необходимости с системными часами.

– Система генерирует 18 отсчетов времени (ticks) в секунду, поэтому, хотя значение свойства interval и измеряется в миллисекундах, реальная точность интервала не может быть больше 1/18 секунды.

– Каждый таймер должен быть связан с формой. Поэтому, чтобы создать приложение с таймером, необходимо создать по крайней мере одну форму (хотя ее не обязательно делать видимой, если только она не нужна для каких-то других действий).

Примечание. Кроме имени и типа элемента управления слово "Таймер" (Timer) обозначает событие Timer и функцию Timer.

Помещение таймера на форму

Таймер помешается на форму точно так же, как и любой другой элемент управления: следует щелкнуть на кнопке таймера в Панели элементов управления и перетащить его мышью на форму.

Таймер появляется на форме только во время разработки, поэтому его можно выбрать, задать его свойства и написать процедуру обработки события для него. Во время выполнения Таймер не видим и его положение и размеры не важны.

Инициализация таймера

Таймер имеет два ключевых свойства:

Enabled (Разрешен) — значение этого свойства следует установить равным True, чтобы таймер начал работать сразу после загрузки формы. Можно задать внешнее событие (например, нажатие кнопки управления), которое инициирует работу таймера.

Interval (Интервал) — количество миллисекунд между последовательными событиями таймера.

Заметим, что свойство Enabled объекта Timer отличается от свойства Enabled других объектов, для большинства которых это свойство определяет, может ли объект отвечать на события, инициированные пользователем. Для объекта Timer установка значения этого свойства равным False приостанавливает операции таймера.

Следует помнить, что событие Timer — периодическое. Свойство interval определяет не длительность события, а его частоту. Значение интервала рекомендуется задавать равным половине требуемой величины точности.

Примечание. Чем чаще генерируется событие Timer, тем больше процессорного времени используется для его обработки. Это может несколько снизить общую производительность. Не устанавливайте маленькие значения интервала, если в этом нет необходимости.

Обработка события Timer

Отсчитывая изменение свойства Interval, Visual Basic генерирует событие Timer. Обычно ответом на это событие является проверка некоторых общих условий, например системных часов.

Цифровые часы очень просты, но объект Timer позволяет создать очень полезное приложение, которое может выполнять роль будильника, секундомера или другого часового устройства.

Во время разработки приложение Digital Clock (Цифровые часы) выглядит, как показано на рис. 2.

Во время выполнения таймер невидим. В таблице представлены установки значений свойств для приложения Digital Clock.

Рис. 2. Приложение Digital Clock

Таблица 2. Значения свойств для приложения Digital Clock

Имя элемента управления

Свойство

Значение

Label 1 (Метка) Timer1 (Таймер) Timer1

Border Style Interval Enabled

Fixed Single

500 (1/2 секунды)

True

Единственная процедура в этом приложении – процедура обработки события для таймера:

Private Sub Timer1_Timer()

  If Label1.Caption <> CStr(Time) Then

     Label1.Caption = Time

  End If

End Sub

Процедура отображает системное время, вызывая встроенную функцию Time. Эта функция возвращает вариантную переменную, содержащую текущее время в виде значения дата/время (VarType 7). Когда это значение присваивается строковой переменной или свойству, например, свойству Caption в данном примере, Visual Basic преобразовывает его в строку, используя формат времени, заданный в Панели управления Windows. Если необходимо отобразить время в другом формате, следует применить функцию Format.

Значение свойства Interval для объекта Timer установлено равным 500, следуя правилу, что необходимо задавать половину значения желаемой точности (в данном примере 1 секунда). Это может привести к мерцанию, поэтому процедура проверяет, отличается ли время от отображаемого значения, прежде чем изменить надпись в метке.

Можно улучшить внешний вид этого приложения, например, выбрав другой  шрифт для метки или изменив свойство BorderStyle формы.

PAGE   \* MERGEFORMAT 3