Главная страница
    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.042 c
2-1202711082
Dib@zol
2008-02-11 09:24
2008.03.09
Win98 + AlphaBlend = ?


3-1193045210
NNH
2007-10-22 13:26
2008.03.09
Обновление запроса UPDATE


8-1176487025
I-New
2007-04-13 21:57
2008.03.09
Как узнать количество кадров в GIF анимации?


2-1202836515
transtream
2008-02-12 20:15
2008.03.09
Как загрузить в Memo текст из файла в Юникоде


2-1202901337
olega
2008-02-13 14:15
2008.03.09
Зарпет обработки события





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский