![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
пиплы! нужен хэлп по таймерам под виндой! [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}