Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

пиплы! нужен хэлп по таймерам под виндой! [D3, D5, Win95/98]


_xiod (sorry? forg.own.passw) ©   (2002-03-23 02:34:00) 

как в дельфе (напр) получить таймер
с разрешением 0.001 и выше ?
(ессесно полный хардвар)

ах... старый добрый ДОС... 0.0000001 sec...
плз!!!


VID   (2002-03-23 13:04:00) [1]

TO ALL: Ну что ж, наверное не попал :)


Anatoly Podgoretsky   (2002-03-23 09:46:00) [2]

Serhii (23.03.02 03:06)
Не тут он обманывает или речь идет не про таймер.

_xiod (sorry? forg.own.passw) (23.03.02 02:34)
Интервалы можно измерить с разрешающей способностью один так процессора, но точность плюс/минус бесконечность, это как тебе позволит ОС, а она не реального времени.

Если тебе нужно всетаки измерение, а не таймер, то смотри ассемблерную команду RDTSC, примеры использования найдешь поиском по сайту, а если аппаратный таймер, то максимум на что ты можешь расчитывать это 0,993 мс, но все с учетом ОС


Serhii   (2002-03-23 03:06:00) [3]

> VID
Описал ты конечно все правильно. Но обратил ли ты внимание на сам вопрос:
"как в дельфе (напр) получить таймер с разрешением 0.001 и выше ?"

>_xiod (sorry? forg.own.passw) (23.03.02 02:34)

>как в дельфе (напр) получить таймер
>с разрешением 0.001 и выше ?
>(ессесно полный хардвар)
>ах... старый добрый ДОС... 0.0000001 sec...плз!!!

А, кстати, в старом добром ДОСе, что вы "успевали" делать по таймеру "0.0000001 сек"?


VID   (2002-03-23 02:42:00) [4]

Для начала описываешь процедуру, которая будет вызываться по сообщению от таймера :
procedure FNTimeCallBack(uTimerID, uMessage: UINT;dwUser, dw1, dw2: DWORD)
stdcall;
begin
//
// Тело процедуры.
end;
а дальше в программе (например по нажатию кнопки) создаешь Таймер и вешаешь на него созданную процедуру

uTimerID:=timeSetEvent(10,500,@FNTimeCallBack,100,TIME_PERIODIC);

Подробности смотри в Help.
Hу и в конце убиваешь таймер

timeKillEvent(uTimerID);

И все. Точность этого способа до 1 мсек. минимальный интервал времени можно задавать 1 мсек.

{это добро содрано с одного FAQ}


Наверх

Титульная страница Поиск, карта сайта Написать письмо