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

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

анимация в application.onidle


nasty ©   (2004-08-12 12:15:00) 

делаю анимацию в application.onidle;
при этом рассчитываю сколько времени занимает прорисовка одного кадра (разница gettickcount).
если общее время анимации >= 250 мс - завершаю анимацию.

но почему-то на медленных машинах анимация занимает гораздо больше, чем 250мс.
не могу понять чем это обусловлено.
если кто сталкивался - помогите, пожалуйста.


nasty   (2004-08-13 15:05:00) [1]

различие как раз было на компах с 2000/xp и win9x. так что данные дельфевой справки win32sdk устарели и неверные. пользуйтесь только мсдн.


nasty   (2004-08-12 18:04:00) [2]

и правда... век живи...
мсдн гласит:
GetTickCount...
...It is limited to the resolution of the system timer. To obtain the system timer resolution, use the GetSystemTimeAdjustment function


Fredy314   (2004-08-12 16:30:00) [3]

На медленніх машинах и application.onidle может наступить больше чем через 250мс он ведь наступает только тогда когда компу нечем занятся. Так у тебя и между кадрами будет разные по времени задержки в зависимости от загрузки процесора.
Чтобы были одинаковые можешь юзать таймер.
А про gettickcount я гдето читал что его использовать не стоит (я правда не понял почему)по моему лучше получать время через функции Date, Time, Now (они вызывают чтото вроде GetSystemTyme).

А тики они могут по разному тикать :-)


Наверх

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