![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глючит Ttimer в самописном компоненте [Win95/98]
Mr.Den © (2004-08-23 10:51:00)Уважаемые.
Написал давече компонент, который использует внутри себя класс Ttimer для анимации внешнего вида компонента (по тикам он сам себя перерисовывает).
Проблема вот какая:
Если размножить компонент на форме(т.е. сделать более одной копии), то перерисовка происходит, только в случае нечетного количества активированных компонент, если количество четно, то во всех компонентах текущее состояние замирает (не перерисовывается).
Я подумал что проблема в таймере.
Может кто предложит альтернативу Ttimer. Интервал где-то 500 мсек.
И вот еще, Таймеры предполагается использовать и в основной программе интервал 30 мин, может есть альтернатива, подскажите пожалуйста.
Заранее благодарен Mr.Den
NikeOLD (2004-08-24 16:09:00) [1]Если у тебя будет по таймеру на компонент, то это чревато. В Win98 количество таймеров ограничено.
Выход: напиши маленький класс, который будет управлять одним единственным таймером и знать обо всех твоих компонентах (у которых могут быть разные интервалы), а там в цикле смотри подошло ли время к обновлению i-компонента.
Юрий Зотов (2004-08-23 12:33:00) [2]> Mr.Den © (23.08.04 10:51)
> перерисовка происходит, только в случае нечетного количества
> активированных компонент, если количество четно, то во всех
> компонентах текущее состояние замирает (не перерисовывается).
> Я подумал что проблема в таймере.
Если проблема "четности" и правда в таймере, то это какая-то очень странная проблема, не правда ли? Тем более, что класс TTimer протестирован сотни тысяч раз еще со времен Delphi 1. И до сих пор работал нормально. У всех.
Так что поневоле напрашивается другое предположение - что проблема все же не в таймере, а в другом коде. Который было бы неплохо видеть, иначе нельзя сказать ничего определенного.