Главная страница
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.014 c
15-1201834853
Slider007
2008-02-01 06:00
2008.03.09
С днем рождения ! 1 февраля 2008 пятница


15-1201722950
Марсер
2008-01-30 22:55
2008.03.09
Бесплатный прокси-сервер для обеспечения ноутбука Инетом


2-1202674227
aids
2008-02-10 23:10
2008.03.09
поиск файлов


15-1201900320
ProgRAMmer Dimonych
2008-02-02 00:12
2008.03.09
Подскажите, плз, направление поиска


6-1179525300
samael6
2007-05-19 01:55
2008.03.09
TidMessage. Загрузить содержимое в строку