forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_timer: выполнение процедуры по таймеру (http://forum.boolean.name/showthread.php?t=6223)

ViNT 07.08.2008 19:42

Lib_timer: выполнение процедуры по таймеру
 
Вложений: 1
Библиотека Lib_timer позволяет многократно выполнять определенную программистом процедуру с определенным временным интервалом.
(Кто знает, аналогично компоненту TTimer в Delphi.)

Библиотека содержит следующие функции:

JAVA:
public static void schedule(int delay,int interval)
public static void cancel();

PASCAL:
procedure schedule(delay,interval:integer);
Инициализация таймера.
Параметры:
delay-время, через которое должен запуститься
таймер.
interval-интервал между вызовами процедуры.
Оба параметра задаются в миллисекундах.

procedure cancel;
Остановка таймера.

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

PHP код:

program TimerTest;
uses timer;
var
 
i:integer;

procedure on_timer;//выполняемая процедура
begin
 i
:=i+1;
 
setcolor(255,255,255);
 
fillrect(0,0,100,20);
 
setcolor(0,0,0);
 
DrawText(''+i,0,0);
 
repaint;
end;

begin
 schedule
(1000,1000);
 
repeat
  delay
(100);
 
until getkeypressed=ke_key0;
 
cancel;
 
delay(2000);
end

Для работы библиотеки необходимо добавить
файл Task.class в проект как ресурс.

Библиотека проверена на SE k510i.

Romanzes 07.08.2008 22:20

Ответ: Lib_timer: выполнение процедуры по таймеру
 
То что надо! Рульная вещь.

Smarik 22.08.2008 22:01

Ответ: Lib_timer: выполнение процедуры по таймеру
 
И как ето чудо человеческой мысли работает? Не получилось запустить даже пример автора.

ViNT 23.08.2008 00:17

Ответ: Lib_timer: выполнение процедуры по таймеру
 
В чем именно проблема? Ошибка при компиляции, или при выполнении программы? Еще раз все проверил - все работает.

Smarik 23.08.2008 00:36

Ответ: Lib_timer: выполнение процедуры по таймеру
 
Ошибка при компиляции
Скриншот для полного понимания
http://sderni.ru/6674
У меня официальная версия 2.02

ViNT 23.08.2008 01:27

Ответ: Lib_timer: выполнение процедуры по таймеру
 
Скорее всего, нужно скопировать файл Lib_timer.class из папки bin архива в папку Libs MP.

Piligrim 29.10.2008 21:41

Ответ: Lib_timer: выполнение процедуры по таймеру
 
Вложений: 1
Небольшое расширение библиотеки. Любое количество таймеров. Просто самому понадобилось :)

beZ_probleM 10.12.2008 19:34

Ответ: Lib_timer: выполнение процедуры по таймеру
 
2 pilgrim
у меня шото не компилится твой пример оО

ViNT 10.12.2008 21:25

Ответ: Lib_timer: выполнение процедуры по таймеру
 
Цитата:

Сообщение от beZ_probleM (Сообщение 91983)
2 pilgrim
у меня шото не компилится твой пример оО

Создай в папке проекта папку bin и все должно заработать.

P.S. Шанс быстро получить точный ответ на вопрос выше, если указать, какая ошибка происходит, чем если просто сказать "у меня не компилится".

Richik 11.05.2009 20:19

Ответ: Lib_timer: выполнение процедуры по таймеру
 
Здорово)),
Но иногда нужно остановить таймер. Как это сделать?
off_timers?

Я так понимаю что эта библиотека обеспечивает возможность создания "Многопоточности" в мидлете, программа работает сама по себе, а процедура в таймере сама?

beisik 11.05.2009 20:37

Ответ: Lib_timer: выполнение процедуры по таймеру
 
По-моему никакой многопоточности нет ;|

ViNT 12.05.2009 01:29

Ответ: Lib_timer: выполнение процедуры по таймеру
 
О многопочточности здесь, в общем-то речь не идет (хотя выполнение процедуры не прерывает основной поток), многопоточность, такая, какая она есть в java, реализована в Lib_thread.

Остановка производится вызовом процедуры cancel.

Richik 12.05.2009 13:05

Ответ: Lib_timer: выполнение процедуры по таймеру
 
Спасибо за наводку на Lib_thread

Vovochka 02.03.2011 12:59

Re: Lib_timer: выполнение процедуры по таймеру
 
To Piligrim
Я так понял в юните Timers не реализонана функция CANCEL.

А как же все таки остановить выбранный таймер???

deathbel 09.03.2011 17:52

Ответ: Lib_timer: выполнение процедуры по таймеру
 
Присоединяюсь к вопросу о том как стопнуть ненужный более таймер?


Часовой пояс GMT +4, время: 17:41.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot