Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Timer в Builder. [Delphi, C++ Builder, Windows]


VolanD666 ©   (2004-11-13 13:01:00) 

Здрасти, мастера! В DelphiX есть хороший Timer, который основан на событии формы OnIdle. Хотел такой же написать для Builder'а вот только кося где то:


Word MiliSeconds;

DecodeTime(Time()-OTime, NULL, NULL, NULL, MiliSeconds);

if (Start and MiliSeconds>=1/30){
 OTime=Time();
/* Текст отрисовки */
 Done=false;
}

OTime- глобальная.


VolanD666   (2004-11-25 17:46:00) [1]

Thank you.


bobomen_   (2004-11-22 14:19:00) [2]

Удалено модератором
Примечание: Последнее предупреждение.


bobomen_   (2004-11-22 08:16:00) [3]

Удалено модератором


Megabyte-ceercop   (2004-11-22 07:56:00) [4]

И от меня тоже сорри.

забыл, что при операциях с Ларге_интегером нужно писать так:

currentticks.QuadPart - Ocurrentticks.QuadPart   //QuadPart выделяет младшую часть и приводит к интегеру.
Помести это.


VolanD666   (2004-11-21 15:34:00) [5]

:)


VolanD666   (2004-11-19 15:29:00) [6]

Сорри, но Builder ругается на:

> if ((currentticks - Ocurrentticks) > 20) // 50 Hz  (1000/20)

(Говорит, что оператор "-" не определен для типа LARGE_INTEGER)


VolanD666   (2004-11-19 11:37:00) [7]

Спасибо, попробую.


Megabyte-CeerCop   (2004-11-15 07:23:00) [8]


> (¤tticks

Это похоже распознано как тэг читать так:

&_currentticks    ( только без знака подчёркивания.)


Megabyte-CeerCop   (2004-11-15 07:21:00) [9]

Делай так. Это быстрый и единственно правильный для игры способ.

LARGE_INTEGER currentticks;
LARGE_INTEGER Ocurrentticks;

QueryPerformanceCounter (¤tticks);   // получаем текущее время

if ((currentticks - Ocurrentticks) > 20) // 50 Hz  (1000/20)
{
Ocurrentticks = currentticks;
/* Текст отрисовки */
}

//Пригодится

QueryPerformanceFrequency(&tickspersecond);   // получаем частоту таймера для данной машины.


Наверх

Титульная страница Поиск, карта сайта Написать письмо