Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB_6.doc
Скачиваний:
134
Добавлен:
01.12.2018
Размер:
3.77 Mб
Скачать

3.5.4. Элемент управления и функция Timer.

Элемент управления Timer служит для организации выполнения

требуемых операций через заданные промежутки времени. Его свойствами являются:

Таб. 3.5.4.

Свойство

Значение свойства

Name

Имя элемента

Enabled

Включает \ отключает отсчёт времени

Interval

Задаёт в миллисекундах интервал времени, по истечении которого происходит событие Timer

Префиксом имени этого элемента служит tmr. Элемент управления

Timer обладает единственным событием, которое имеет то же самое

имя Timer. Это событие происходит, когда после запуска отсчёта времени проходит время, равное установленному значению свойства Interval. Свойство Enabled может принимать два значения True и False. По умолчанию оно принимает значение True. При Enabled равном True отсчёт времени начинается сразу после загрузки формы, на которой расположен сам элемент Timer. Если программным путём изменить его на False, запуск отсчёта времени прекратиться. Свойство Interval может принимать значения от 0 до 64767 миллисекунд, что соответствует примерно 65 секундам. При Interval = 0 элемент Timer становится неактивным.

Если требуется организовать интервал времени до наступления события Timer более длительный, чем 65 секунд, можно создать переменную - счётчик, которая будет отсчитывать требуемое количество промежутков по 65 секунд до наступления события Timer. Таким способом можно создавать очень большие промежутки времени.

Пример 1. Создание эффекта ”бегущей строки”.

В разделе General формы объявляем общедоступные переменные:

Public st$, k%

В процедуре загрузки формы устанавливаем значение свойства Interval элемента Timer1 и исходное состояние “бегущей строки”.

Private Sub Form_Load()

k = 1

Timer1.Interval = 100

st = " Quod licet Jovi, non licet bovi ! "

Text1 = st

End Sub

В процедуру обработки события Timer элемента Timer1 записываем код перемещающий текущую первую букву строки в конец строки, чем и достигается эффект бегущей строки.

Private Sub Timer1_Timer()

Dim n%

n = Len(st)

st = Mid$(st, 2, n - 1) & Mid$(st, 1, 1)

Text1 = st

End Sub

В процедуру обработки события Click командной кнопки записываем код, который в зависимости от значения общедоступной переменной k изменяет содержание строки с латыни на русский и наоборот:

Private Sub Command1_Click()

k = -k

If k >= 0 Then

Text1 = ""

st = " Quod licet Jovi, non licet bovi ! "

Else

Text1 = ""

st = " Что дозволено Юпитеру, не дозволено быку ! "

End If

End Sub

Элемент Timer можно использовать для ограничения времени ввода пароля, а также при создании простейшей анимации.

Пример 2. Ограничение времени ввода пароля.

Располагаем на форме элемент Timer1 и текстовое окно. Значение свойства PassWord текстового окна задаём равным, например, символу “*”. Для элемента Timer1 устанавливаем Interval = 5000. а процедуру обработки его события Timer записываем в виде:

Private Sub Timer1_Timer( )

If Text1.Text = “Open” Then

Form1.Hide

Form2.Show

Timer1.Enabled = False

ElseIf Text1.Text = “” Then

MsgBox “Время вышло. Повторите ввод пароля!”

Else

MsgBox “Пароль не верен. Введите пароль снова!”

Text1.Text = “”

Timer1.Enabled = True

End If

End Sub

Если пароль введён правильно, происходит переключение форм и работа таймера завершается. Если пароль введён неверно или просрочено время его ввода, об этом выдается сообщение и предлагается повторить ввод пароля.

Пример 3. Использование таймера для создания простой анимации.

На форме размещаем элемент Timer1, для которого в окне свойств задаем Interval = 5, и элемент Image. В разделе General формы объявляем переменные:

Private x%, y%

Дважды щелкаем на форме и в заготовку процедуры Form1_Load вносим код:

Private Sub Form1_Load()

x = 10: y = 10

End Sub

Дважды щелкаем на элементе Timer1 и в заготовку процедуры Timer1_Timer() вносим код:

Private Sub Timer1_Timer()

Image1.Left = Image1.Left + x

Image1.Top = Image1.Top + y

If Image1.Left > Me.Width – 500 Then

Image1.Picture = LoadPicture(“D:\VB\ Timer\face02.ico”)

x = - x

End If

If Image1.Left < 0 Then

Image1.Picture = LoadPicture(“D:\VB\ Timer\face02.ico”)

x = - x

End If

If Image1.Top > Me.Height – 1000 Then

Image1.P Timer icture = LoadPicture(“D:\VB\ Timer\face03.ico”)

y = - y

End If

If Image1.Top < 0 Then

Image1.Picture = LoadPicture(“D:\VB\ Timer\face04.ico”)

y = - y

End If

End Sub

Запускаем приложение на выполнение.

Здесь предполагается, что на диске “D” по указанному пути есть файлы упоминаемых в коде процедуры изображений. Функция

LoadPicture загружает их на элемент Image. Свойства Top и Left элемента Image определяют расстояние элемента от верхней и левой границ формы, а свойства Width и Height формы – это ее ширина и высота в выбранных единицах измерения. По умолчанию это твипы.

Если на форме нужно отобразить в разных циклах движения нескольких объектов, то это можно осуществить с помощью нескольких элементов Timer. Но тогда потребеутся синхронизировать моменты запуска соответствующих процедур обработки их событий Timer. что может оказаться довольно непростой задачей. В таких случаях удобнее использовать функцию Timer. Она возвращает время в секундах, прошедшее с начала суток. Получаемое значение является числом Single и обеспечивает точность до 6 – 7 знаков после запятой, т.е. до миллионных долей секунды.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]