Вниз
Скачать: CL | DM;

Таймер   Найти похожие ветки 

← →
Дмитрий ©   (2004-05-29 02:00) [0]

1) нужно написать таймер с точностью до милисекунд. 2) какое значение задержки у компонента "таймер" соответствует 1 с.
Спасибо.


← →
lyeh   (2004-05-29 02:06) [1]

Круто :)
Задержка у таймеров измеряется в милисекундах, сколько их в секунде? Точный таймер можно сделать посредством thread


← →
Thinker ©   (2004-05-29 03:12) [2]

1)Можно сделать такой :)
2)1000


← →
Германн ©   (2004-05-29 03:16) [3]

Написать таймер с точностью до миллисекунд - слишком много хочешь.

2 lyeh   (29.05.04 02:06) [1]
> Точный таймер можно сделать посредством thread
Увы. Не всегда можно. И очень редко можно.


← →
lyeh   (2004-05-29 03:24) [4]

Более точный можно написать в OnIdle или в теле какого-нибудь лупа, но тогда он будет загружать процессор на все 100% независимо от "веса" зацикленного кода


← →
Thinker ©   (2004-05-29 05:33) [5]

Напиши подробнее, что за таймер ты хочешь сделать! Это часы или секундомер....?! Только тогда можно будет дать правильный ответ!


← →
Дмитрий ©   (2004-05-29 05:36) [6]


> Thinker ©   (29.05.04 05:33) [5]
> Напиши подробнее, что за таймер ты хочешь сделать! Это часы
> или секундомер....?! Только тогда можно будет дать правильный
> ответ!

Секундомер.


← →
Thinker ©   (2004-05-30 02:08) [7]

Я делал такой секундомер.


> lyeh   (29.05.04 03:24) [4]
> в теле какого-нибудь лупа, но тогда он будет загружать
> процессор на все 100%
> независимо от "веса" зацикленного кода


Я так делал. Попробую написать код:

var
 Stop: Boolean; // глобальная или локальная...зависит от кода
 S: TSystemTime;
begin
 repeat
   DateTimeToSystemTime(Time, S);
   Label1.Caption := TimeToStr(Time) + ":"
   + IntToStr(S.wMilliseconds)
 until Stop
end;

На событие OnClose нужно будет Stop := True

Я так прямо писал из нет кафе...так, что ошибки будут наверно)))


← →
Германн ©   (2004-05-30 02:26) [8]

2 Thinker ©   (30.05.04 02:08) [7]
Даже если все сидит в цикле, нет никакой возможности получить точное значение миллисекунд в точно заданный момент времени!.
Многозадачность Windows не позволит.

1. Цикл repeat until прервется передачей процессорного времени другому процессу.
2. Параметр Stop изменит свое значение при таком коде только в многопоточной программе, да и к тому же (по смыслу) должен будет ждать обработки соответствующего сообщения. А когда все это случится - даже богу не известно.


← →
renat-me ©   (2004-05-30 11:04) [9]

А у DelphiX DXTimer вреде что-то ближе к реальности!!!


← →
KilkennyCat ©   (2004-05-30 11:42) [10]

Используйте GetTickCount (если не ошибаюсь  в правильности). Позволяет точно отслеживать количество миллисекунд в промежутке между вызовами этой функции. Конечно, не получится вызывать каждую миллисекунду, но зато можно знать, сколько прошло. Для секундомера - идеально.


← →
SammIk ©   (2004-05-30 12:21) [11]

db 0fh,31h;Команда получает количество тиков процессора.
В eax младшая часть учетверенного слова, в edx старшая.(точно не помню)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.022 c
1-1085750204
Anton
2004-05-28 17:16
2004.06.13
Шрифты


14-1085233214
ricks
2004-05-22 17:40
2004.06.13
Орфография


14-1085747053
Knight
2004-05-28 16:24
2004.06.13
Посоветуйте программу для фотомонтажа?


1-1086077407
Viller
2004-06-01 12:10
2004.06.13
Вопрос по FastScript. Работа с формами.


1-1086197197
init13
2004-06-02 21:26
2004.06.13
Селф?




   Наверх