Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];

Вниз

Таймер на 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 вся ветка

Форум: "KOL";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.047 c
15-1201857706
Andryk
2008-02-01 12:21
2008.03.09
Кто все эти люди?! :)))))))))))) Сцылка


15-1201937868
SKIPtr
2008-02-02 10:37
2008.03.09
Помогите с выбором материнской платы


15-1202083836
Германн
2008-02-04 03:10
2008.03.09
Дни недели


2-1202807561
SergeR
2008-02-12 12:12
2008.03.09
Получить текущее время комьпютера в сети


2-1202730814
AlexeyShestchenko
2008-02-11 14:53
2008.03.09
градиентная заливка memo





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский