![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
PTimer [Delphi]
INFINITY © (2007-10-14 22:42:00)Нужно создать n - количество таймеров PTimer^.
Как обратиться ко всем созданым таймерам для их остановки/запуска уже после их создания(в любое время).
Заранее спасибо.
INFINITY (2007-10-15 18:56:00) [1]Если кому интересно могу на мыл скинуть софт
INFINITY (2007-10-15 18:50:00) [2]Нужны. Период колебрится от 1000. Для каждого таймера.
Один общий таймер не подходит. Обработчики разные (под каждый array)
Спасибо за советы.
Сейчас все хороше работает, как и хотел - то что нужно.
Unknown Mystic (2007-10-15 17:27:00) [3]А нужны ли вообще все эти фиг знает сколько таймеров?
Может сделать 1 с небольшим интервалом и в нем обрабатывать все что нужно, тем более, что я так понимаю обработчики у них одинаковые...
Держать в массиве только каждые сколько срабатываний таймера выполнять обработчик и все...
Barloggg (2007-10-15 14:15:00) [4]эмм. а зачем вообще?
создаешь таймер и сразу вешаешь ему обработчик onTimerTick.
ну и все.
а уже в этом обработчике можешь найти по Sender того таймера который этот обработчик вызвал.
таким вот образом
if Sender=Timer[?] then
так один обработчик может несколько таймеров обслуживать.
только надо быть поаккуратнее если таймеры мультимедийные.
INFINITY (2007-10-15 11:30:00) [5]TJOB = record
{Acvive and metod}
_ACTIVE, _WATCH, _WATCH_TREE: boolean;
{Name job}
_NAME: string[50];
{Search path + masks(ex)}
_DIR, _MASK, _MASK_EX: string;
{Interval timer}
_INTERVAL: integer;
{Secondary job}
_RUN_DIR, _RUN_FILE, _RUN_PARAMS: string;
_RUN_WAIT: boolean;
_RUN_SHOW: Integer;
{Interfase}
_IMAGE: string;
_WAV: string;
{Tools}
_AS_VIEW: string;
end;
TJOBARRAY = array of TJOB;
Для каждого таймер или DirChangeNotifier
INFINITY (2007-10-15 11:24:00) [6]А как тогда оращаться к таймерам, childcount?
ANTPro (2007-10-15 01:23:00) [7]Можно все завернуть в объект. Но зачем такая структура?
INFINITY (2007-10-14 23:21:00) [8]Спасибо за ответ, уже придумал как.
Но нужно было вот это.
Создать PList в него при создани добавил
Timers:=NewTimer(Job[i]._INTERVAL);
TimerList.Add(Timers);
..
а потом
for i:=0 to TimerList.Count-1 do
PTimer(TimerList.Items[i]).Enabled:=false {true};
Может есть проще способ? Подскажите. Буду рад учиться.
Jon (2007-10-14 23:00:00) [9]Create (KOL only) (1000ms = 1s):
Timer := NewTimer(1000);
Start:
Timer.Enabled := True;
Stop:
Timer.Enabled := False;