Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Таймер / 10 сообщений из 10, страница 1 из 1
10.04.2006, 20:23
    #33656989
StandD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер
Люди!
Помогите! Срочно нужно, а я никогда с этим не сталкивался. Нужно в форму вставить таймер (ну, это я смог!). Но нужно, чтобы каждые 5 секунд запускалась процедура. Какие параметры таймера, где их ставить - не знаю. Кроме вставки значка часов на форме - ничего не умею.
ПОМОГИТЕ!
...
Рейтинг: 0 / 0
10.04.2006, 21:49
    #33657072
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер
Interval - значение в миллисекундах (одна тысячная секунды) через которое будет срабатывать таймер
Timer - событие, которое будет обрабатываться

Включить/выключить таймер можно при помощи свойства Enabled

Следует только иметь в виду, что событие таймера не имеет приоритета. Это значит, что оно как все события дисциплинированно встанет в очередь процессов.

Например, ты запустил некоторый метод на форме, который работает около минуты. На форме есть таймер, который срабатывает каждые 5 секунд. Произойдет примерно следующее:

Каждые 5 секунд будет вызываться событие таймера. Но немедленно выполниться оно не может и будет поставлено в очередь. Всего, за время выполнения долгой процедуры наберется 12 событий таймера (за одну минуту).

После окончания выполнения этой долгой процедуры начнут срабатывать события таймера. Все, что накопились в очереди.
...
Рейтинг: 0 / 0
10.04.2006, 21:52
    #33657077
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер
А как сбросить эту очередь событий таймеров ?
Или проще не допускать выполнения более одного раза между интревалами срабатывания?
Никогда не работал с таймерами, просто интересно как в таком случае поступать.
С уважением, Алексей
...
Рейтинг: 0 / 0
10.04.2006, 21:59
    #33657079
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер
А смысл в работе таймера в процессе выполнения этой долгой процедуры? Все равно ведь не выпонится его событие. Проще перед началом процедуры отключить таймер, а по окончании процедуры снова включить.

Если же интервал срабатывания таймера сопоставим или больше времени выполнения долгой процедуры, то и беспокоится не о чем. В худшем случае будет одно отложенное событие, которое выполнится по окончании процедуры.
...
Рейтинг: 0 / 0
11.04.2006, 00:34
    #33657175
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер
Hi StandD!

Выделить эти самые "часы на форме" и нажать F1

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
11.04.2006, 08:31
    #33657325
FoxGroup
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер
Posmotri :
tTime = DATETIME() + 10
This.Interval = (tTime - DATETIME()) *10000
DO FORM Myform.scx"
*This.Enabled = .T.
Thisform.RELEASE
...
Рейтинг: 0 / 0
11.04.2006, 09:35
    #33657431
StandD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер
Огромное всем спасибо - сейчас засяду.
...
Рейтинг: 0 / 0
11.04.2006, 09:39
    #33657441
Таймер
FoxGroupPosmotri :
tTime = DATETIME() + 10
This.Interval = (tTime - DATETIME()) *10000
DO FORM Myform.scx"
*This.Enabled = .T.
Thisform.RELEASE

И зачем так
Делаем просто This.Interval =10000
...
Рейтинг: 0 / 0
16.04.2006, 01:32
    #33669209
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер
Hi Aleksey!

> А как сбросить эту очередь событий таймеров ?

Думаю что никак - а вот внутри самого Timer event проводить дополнительый
анализ (например на базе дополнительного свойства типа tLastFiredOn) и если
надо, то пропускать "излишне частые" срабатывания - это несложно.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
16.04.2006, 12:26
    #33669332
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер
Igor Korolyov
Hi Aleksey!

> А как сбросить эту очередь событий таймеров ?

Думаю что никак - а вот внутри самого Timer event проводить дополнительый
анализ (например на базе дополнительного свойства типа tLastFiredOn) и если
надо, то пропускать "излишне частые" срабатывания - это несложно.

Posted via ActualForum NNTP Server 1.3
Спасибо, попробую, если придется воспользоваться таймером.
Думаю, что надо создать свой класс на основе базового и дополнить его этим свойства (tLastFiredOn).
С уважением, Алексей.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Таймер / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]