Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.09;
Скачать: CL | DM;

Вниз

Таймер на 10мс.   Найти похожие ветки 

 
2expres   (2006-12-19 15:05) [0]

Не могу получить точный таймер на 10мс. Как можно настроить системный или создать свой таймер???


 
Vladimir Kladov   (2006-12-19 18:20) [1]

KOL: NewMMTimer
MCK: TKOLTimer.Multimedia=true


 
Volterman   (2007-07-18 10:47) [2]

Не могу разобраться с таймером, помогите!
У меня есть главное окно и цикл обработки сообщений. Типа такого...
  while (msg.message <> WM_QUIT) do
     begin
       if PeekMessage(msg, 0, 0, 0, PM_REMOVE) then
       begin
         TranslateMessage(msg);
         DispatchMessage(msg);
       end;
       <Действия которые выполняются постоянно>
     end;
 

Надо с помощью таймера имитировать многозадачность (например что-то выполнять каждую 1 секунду, что-то раз в 10 секунд).
Может кто-то приведет готовый пример. Я что-то не совсем понимаю как обрабатывать событие OnTimer.
     Timer1:=NewTimer(1000);
     Timer1.Enabled:=True;
     Timer2:=NewTimer(10000);
     Timer2.Enabled:=True;


 
=BuckLr=   (2007-07-18 13:29) [3]


> как обрабатывать событие OnTimer.

Timer.OnTimer := ... ?


 
Volterman   (2007-07-18 13:33) [4]

Хорошо, а какого типа тогда должна быть присваемая процедура или функция, если я не использую объект TForm = objcet (PObj).
Когда присваиваю обычную процедуру, то компилятор выдает ошибку.


 
Дмитрий К ©   (2007-07-18 14:32) [5]


> Volterman   (18.07.07 13:33) [4]
>
> Хорошо, а какого типа тогда должна быть присваемая процедура
> или функция, если я не использую объект TForm = objcet (PObj).
>
> Когда присваиваю обычную процедуру, то компилятор выдает
> ошибку.
>

TOnEvent

procedure DoTimer(Dummy: Pointer; Sender: PObj);
begin
//обработка
end;

...
Timer.OnTimer := TOnEvent(MakeMethod(nil,@DoTimer));
...


+ читать KOLBook http://kolmck.net/docs/KOLBook.rar


 
=BuckLr=   (2007-07-18 15:52) [6]


> + читать KOLBook http://kolmck.net/docs/KOLBook.rar

А можно просто написать .OnTimer и щелкнуть по нему с control. Ну и KOLBook обязательно :)


 
Volterman   (2007-07-18 16:37) [7]

2Дмитрий К: Сенкс, помогло. Как раз то что меня интересовало.
Я поначалу по другому сделал:

type
 TF = objcet (PObj)
    Timer1: PTimer;
    procedure DoTimer(Sender: PObj);
 end;
var
 F: TF;
begin
 F.Timer1:=NewTimer(1000);
 F.Timer1.Enabled:=True;
 F.Timer.OnTime:=F.DoTimer;
end.

Пробовал имитировать объект TForm.
Так как формы из MCK я не использую, то это

Timer.OnTimer := TOnEvent(MakeMethod(nil,@DoTimer))

в самый раз.


 
miek ©   (2007-07-19 20:38) [8]

таймер с разрешением 10мс в винде получить нельзя. 15 мс теоретически можно. но на типовом компе будет 25 мс.


 
Vladimir Kladov   (2007-07-19 21:14) [9]

Можно. timeBeginPeriod( 1 ). Вот только занятость процессора будет 100% - он только и будет лелать, что этот период пытаться контролировать. Так же не помешает добавить приоритет своему процессу, иначе часики будут задумываться.


 
miek ©   (2007-07-22 00:18) [10]

>Можно. timeBeginPeriod( 1 ).
Да, если поставить самый высокий приоритет. А кому такое надо?


 
Vladimir Kladov   (2007-07-22 19:52) [11]

Не знаю, кому. Я лишь ответил про приципиальную возможность. Высокий приритет очень имеет смысл поставить игрушке типа зумы, чтобы не дёргалась, например :) А так - это вообще нафиг не нужно, если это не видеоигра или эмулятор автомата для видеоигр. Ах да, управление реальным процессом. Нет, не рекомендуется использовать для этого MS Windows в любом случае. Всё равно иногда не успевает, и там где для видеоигры сойдёт с пивом, для управления АЭС может кончиться плохо.



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

Текущий архив: 2008.03.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
3-1192621905
gentos
2007-10-17 15:51
2008.03.09
как прикрепить файл к письму ?


15-1201784829
NailMan
2008-01-31 16:07
2008.03.09
Нужен удобный FileWatcher


2-1202659042
Strate
2008-02-10 18:57
2008.03.09
Скрыть вкладки в TPageControl


2-1202711082
Dib@zol
2008-02-11 09:24
2008.03.09
Win98 + AlphaBlend = ?


2-1202608791
bagos
2008-02-10 04:59
2008.03.09
глюк какойто или сервак рубит мой коннект