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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2009, 22:04   #1
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию Странности в работе с событием OnTimer

Здраствуйте!
Код:
setlength(ACord,length(ACord)+1);
      ACord[length(ACord)-1].X := MyDeViceState.lX;
      ACord[length(ACord)-1].Y := MyDeViceState.lY;
Данное событие происходить каждую миллисекунду, то есть если программа работает 5 секунду длиня массива(length(ACord)) должны быть равна 5000, так как процедура вызывается 5000 раз... Но почему это не происходит? И после 5 секунду длина массива гораздо меньше, хотя в таймере интервал стоит равный 1(то есть тысячная доля секунды)?
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 16.01.2009, 22:23   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Таймер не даст такой точности... делаете отдельный поток в нем... к примеру

while not Terminated do
begin
// do something
Sleep(1);
end;

Будет работать каждую миллисекунду и то наверняка вы не получите 5000 а вообще странная у вас задача, полюбому есть другое рациональное решение.
BOBAH13 вне форума Ответить с цитированием
Старый 16.01.2009, 22:31   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

М-м-да-а...
Вас не затруднит сформулировать задачу? К чему такие "изыски" с миллисекундой? При измерительном интервале 5 сек. это составит 5 миллионов результатов измерения. Не многовато?
Наверняка вам нужно просто строить график в режиме реального времени, а глаз человека быстрее, чем смена изображения 24 раза в 1 секунду - не воспринимает... (на этом и основан пресловутый "эффект 25-го кадра", хотя на мой взгляд, это чистый "развод").
Итак, уточним постановку задачи? Зачем самому себе усложнять?
mihali4 вне форума Ответить с цитированием
Старый 17.01.2009, 01:22   #4
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Ну за 5 секунд - 5000 измерений) Рельно мне нужно опрашивать мышь с частотой примерно 250-500Гц, реализовал через мультимедиа таймер вроде работает...
И данные опроса мыши мне нужно сохранять в файл, но скорость работы жесткого диска не позволит это сделать, поэтому пишу в массив, а потом сохраняю его в файл...
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите по работе с процедурами... ЕвгениуS Помощь студентам 1 28.05.2008 15:52
Задача по работе с массивом... ЕвгенийОлегович Помощь студентам 1 20.05.2008 22:36
Странности инди и примеров по инди oleg kutkov Работа с сетью в Delphi 2 18.07.2007 14:06