Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2013, 20:01   #1
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
Радость Как создать больше таймеров?

Мне нужно больше таймеров

создаю так

Код:
for i := 0 to 4900 do
  begin
  timer := TTimer.Create(nil);
  timer.Interval := 1;
  timer.Enabled := true;
  timer.OnTimer :=tmr1Timer;
   // caption:=IntToStr(i);
     end;
если привышаю 4900
то вылетает такая ошибка и на отрез отказывается грузить больше таймеров
Цитата:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOutOfResources with message 'Not enough timers available'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Помагите решить проблему мне нужно больше таймеров как обойти ограничение слышал что чтото в виндусе ...
jone вне форума Ответить с цитированием
Старый 15.04.2013, 20:17   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Вам не нужно столько таймеров.
Таймеров вообще не нужно больше одного.
Изложите свою задачу, и попытаемся найти, где у Вас ошибка.
s-andriano вне форума Ответить с цитированием
Старый 15.04.2013, 20:27   #3
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
По умолчанию

Ошибки нет а таймеров мне действительно столько нужно, только больше,
задача нано секунду вывести на экран... тоесть ЧАС.МИНУТА.СЕКУНДА.*.*.*.*.*.*.*.*. *
jone вне форума Ответить с цитированием
Старый 15.04.2013, 20:40   #4
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Windows не система реального времени. Ничего у Вас не получится.
FaTaL вне форума Ответить с цитированием
Старый 15.04.2013, 20:41   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

У обычного таймера слишком большая неточность для Вашей задачи.
Самый точный метод (насколько понимаю) в Windows - GetTickCount - возвращает значение в миллисекундах со времени старта системы, что "немного" больше наносекунд.

Ошибся - не самый точный.
Но лучше 1 миллисекунды не получите.
http://iproc.ru/programming/windows-timers/
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 15.04.2013, 20:45   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

а точность и не нужна... простое вычисление в 1 таймере.
Человек_Борща вне форума Ответить с цитированием
Старый 15.04.2013, 20:55   #7
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

у таймера VCLного слишком маленький приоритет. у него точность варьируется от 15 до 40 мс, при слабой загрузке компа
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 15.04.2013, 21:13   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от alextrof94 Посмотреть сообщение
у таймера VCLного слишком маленький приоритет. у него точность варьируется от 15 до 40 мс, при слабой загрузке компа
Ну да.
Но есть еще MM-таймер, у которого точность декларируется в 1 мс.

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

Правда, измерять время можно существенно точнее, но только измерять - получать сообщения так нельзя.
s-andriano вне форума Ответить с цитированием
Старый 15.04.2013, 21:29   #9
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
По умолчанию

Пофигу на неточности как сделать больше таймеров)

-3 это таймер * 1 000 000
получаем действие ~=нано секунде
Изображения
Тип файла: png w.png (36.2 Кб, 160 просмотров)
jone вне форума Ответить с цитированием
Старый 15.04.2013, 21:35   #10
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
если привышаю 4900
...
нужно больше таймеров
вам одного мало?

Цитата:
задача нано секунду вывести на экран
ню-ню.

http://programmersforum.ru/showpost....3&postcount=19
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 15.04.2013 в 21:40.
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать окно больше чем экран монитора gunsoy Win Api 7 01.02.2013 04:54
Работа с таймеров в Qt papos Общие вопросы C/C++ 0 14.11.2010 20:05
Менеджер таймеров Alex Cones Общие вопросы Delphi 9 11.11.2010 19:34
Где найти исходники на Java( 1 проект - больше 1000 классов, 2 проект - больше 100, 3 проект - больше 10) Pti44ka Общие вопросы по Java, Java SE, Kotlin 2 09.09.2010 21:31
Варианты реализации программы с использованием таймеров Casper-SC Общие вопросы Delphi 10 28.11.2009 19:18