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

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

Имплонтация мультимедийного таймера в свой компонент [D6, WinXP]


Страницы:   1 2

Jimmy ©   (2007-09-19 21:00:00) 

Не подскажите, как имплонтировать мультимедийный таймер в свой компонент? Заранее спасибо.


clickmaker   (2007-09-20 11:57:00) [21]


> и чем не устраивает обычный

медленно бежит, наверно )


Сергей М.   (2007-09-20 11:57:00) [22]


> У обычного таймера минимальная задержка в 55 мсек. А мне
> нужно меньше


Неужели для анимации строки 18 кадров в секунду недостаточно ?)


Сергей М.   (2007-09-20 11:55:00) [23]

Ты уж определись наконец, какойкомпонент ты разрабатываешь - то ли компонент-"бегущую строку", то ли компонент-таймер.

А заодно задумайся, за каким лешим тебе понадобился именно мультимедийныйтаймер и чем не устраивает обычный.


Инс   (2007-09-20 11:54:00) [24]


> Я делаю бегущую строку.

Да, тут конечно юзер-таймером никак не отделаешься :))) Код показывай!


Jimmy   (2007-09-20 11:51:00) [25]

В RxGifAnimator например ведь можно сделать анимацию в DesignTime. Я делаю бегущую строку. Было бы неплохо чтобы она бежала и в DesingTime?


Anatoly Podgoretsky   (2007-09-20 11:42:00) [26]

> Jimmy  (20.09.2007 11:05:12)  [12]

Там где происходит ошибка.
В DesignTime пользоваться таймером не надо.


Сергей М.   (2007-09-20 11:34:00) [27]


> Где вставить эту проверку


В той процедуре, где ты пытаешься запустить таймер.


> как все же пользоваться таймером в DesignTime?


Зачем тебе нужен работающий таймер в дизайн-тайм ? Поясни ..


Jimmy   (2007-09-20 11:05:00) [28]

Где вставить эту проверку и как все же пользоваться таймером в DesignTime?


Сергей М.   (2007-09-20 11:01:00) [29]

if csDesigning in ComponentState then


Jimmy   (2007-09-20 10:52:00) [30]

Я - новичок. Не подскажите, как сделать эту проверку?


Инс   (2007-09-20 10:46:00) [31]


> Jimmy   (20.09.07 10:43) [8]

Скажу. Потому что вы пытаетесь вызвать в DesignTime обработчик события OnTimer. Не делаете проверку, мы сейчас в дизайн-тайм или ран-тайм. Угадал? Плюс, уверен, вы не учли то, что я сказал насчет потоков, нет никакой синхронизации.


Jimmy   (2007-09-20 10:43:00) [32]

Спасибо за советы! Но вот появилась еще одна проблемка. Когда я включаю имплантированный таймер во время работы программы - все работает, когда же это делаю на этапе разработки в инспекторе объектов, появляется ошибка. Почему это может быть? Или без кода не скажешь?


Инс   (2007-09-20 10:36:00) [33]


> Врешь и не краснеешь.

Любой объект-таймер (юзер-таймер, мультимедиа-таймер, ожидаемый таймер) работает через единственный системный таймер, который генерирует аппаратные прерывания на системах NT с частотой 10 мс. По этому прерыванию управление получает планировщик, который выполняет все необходимые действия, связанные с планированием потоков, которые также включают в себя обработку объектов-таймеров. Это разрешение в 10 мс можно изменить с помощью timeBeginPeriod, однако я не рекомендовал бы это делать, так как это скажется на всей системе, в частности, изменится величина кванта, выделяемая потокам, что может отрицательно сказаться на производительности системы.


Сергей М.   (2007-09-20 08:14:00) [34]


> как имплонтировать мультимедийный таймер в свой компонент?


Примерно так как и обычный таймер "импл Антирован" в компонент TTimer.
Исходники компонента доступны.


homm   (2007-09-20 07:19:00) [35]

> [3] Инс ©   (19.09.07 23:42)
> А минимальная задержка на платформе NT на нем 10 мс

Это у кого, у мультимедиа? Врешь и не краснеешь.


Инс   (2007-09-20 00:43:00) [36]


> У обычного таймера минимальная задержка в 55 мсек. А мне
> нужно меньше.

Кстати, у USER-таймера на NT тоже 10 мс. Это на 9x 55


Инс   (2007-09-19 23:42:00) [37]


>  [2] Jimmy   (19.09.07 21:44)

А у мультимедийного таймера масса ограничений, в частности, коллбэк выполняется в дополнительном потоке, со всеми вытекающими, а еще можно в MSDN заглянуть, там написано, что в этом коллбэке можно вызывать. А минимальная задержка на платформе NT на нем 10 мс, вам от этого легче?


Jimmy   (2007-09-19 21:44:00) [38]

У обычного таймера минимальная задержка в 55 мсек. А мне нужно меньше.


Efir   (2007-09-19 21:35:00) [39]

А тебе зачем. Если с этой задачей может справиться TTimer, то лучше использовать его.


Страницы:   1 2

Наверх

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