-
Нужно создать n - количество таймеров PTimer^.
Как обратиться ко всем созданым таймерам для их остановки/запуска уже после их создания(в любое время).
Заранее спасибо.
-
Create (KOL only) (1000ms = 1s):
Timer := NewTimer(1000);
Start:
Timer.Enabled := True;
Stop:
Timer.Enabled := False;
-
Спасибо за ответ, уже придумал как.
Но нужно было вот это.
Создать PList в него при создани добавил
Timers:=NewTimer(Job[i]._INTERVAL);
TimerList.Add(Timers);
..
а потом
for i:=0 to TimerList.Count-1 do
PTimer(TimerList.Items[i]).Enabled:=false {true};
Может есть проще способ? Подскажите. Буду рад учиться.
-
Можно все завернуть в объект. Но зачем такая структура?
-
А как тогда оращаться к таймерам, childcount?
-
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
-
эмм. а зачем вообще?
создаешь таймер и сразу вешаешь ему обработчик onTimerTick.
ну и все.
а уже в этом обработчике можешь найти по Sender того таймера который этот обработчик вызвал.
таким вот образом
if Sender=Timer[?] then
так один обработчик может несколько таймеров обслуживать.
только надо быть поаккуратнее если таймеры мультимедийные.
-
А нужны ли вообще все эти фиг знает сколько таймеров?
Может сделать 1 с небольшим интервалом и в нем обрабатывать все что нужно, тем более, что я так понимаю обработчики у них одинаковые...
Держать в массиве только каждые сколько срабатываний таймера выполнять обработчик и все...
-
Нужны. Период колебрится от 1000. Для каждого таймера.
Один общий таймер не подходит. Обработчики разные (под каждый array)
Спасибо за советы.
Сейчас все хороше работает, как и хотел - то что нужно.
-
Если кому интересно могу на мыл скинуть софт