![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Замена таймера
Raduga © (2003-10-16 13:05:00)
Здравствуйте.
Как можно сделать, чтобы некоторая процедура периодически вызывалась, не используя компонент TTimer. А то у меня есть свой компонент и в нем процедура, которая будет периодически вызываться если пользователь например щелкнул по компоненту, можно в компонент "всунуть" таймер, но если пользователь создаст их штук 20-30, это ж 20-30 таймеров.
Rouse_ (2003-10-16 14:16:00) [1]
> мог самостоятельно периодически вызывать свой метод
Но чтобы он был один для всех? Если так я привел пример. А если нет то придется для каждого компонента делать свою реализацию таймера как Вы и собирались делать вначале.
> ...пользователь например щелкнул по компоненту...
но если пользователь создаст их штук 20-30, это ж 20-30
> таймеров
А вы стартуйте таймер только когда он нужен, и когда не нужен приостанавливайте. Да и где это видано чтоб он успел щелкнуть одновременно 20-30 компонентов?
Желаю успехов
Raduga (2003-10-16 14:05:00) [2]
>Rouse_ © (16.10.03 13:31) [5]
>Я как понял вы хотите сделать чтоб все экземпляра для таймера использовали один?
как раз наоборот, чтобы компонент мог самостоятельно периодически вызывать свой метод.
Rouse_ (2003-10-16 13:31:00) [3]
> но если пользователь создаст их штук 20-30, это ж 20-30
> таймеров
А что Вас здесь смущает, боитесь превысить лимит? Я как понял вы хотите сделать чтоб все экземпляра для таймера использовали один?
Ну тогда сделайте у компонента так:
FTimer: TTimer;
property ExternalTimer read FTimer write SetTimer;
procedure SetTimer(const Value: TTimer);
begin .....
В Ваших компонентах появится свойство ExternalTimer которому можно присвоить любой внешний таймер который будет работать одновременно на все компоненты.
Желаю успехов
DVM (2003-10-16 13:15:00) [4]
> Мне надо чтобы компонент был автономным, и не зависел от
> внешних таймеров
делай SetTimer() / KillTimer - это апишные функции, сам компонент таймер не нужен.
Raduga (2003-10-16 13:12:00) [5]
>clickmaker © (16.10.03 13:11) [2]
Мне надо чтобы компонент был автономным, и не зависел от внешних таймеров
clickmaker (2003-10-16 13:11:00) [6]
> Raduga (16.10.03 13:05)
Можно и одним таймером обойтись. Если интервалы разные, то ставить его на минимум и в нем уже проверять, истек ли нужный интервал и запускать соотв. процедуру
DVM (2003-10-16 13:08:00) [7]
Отдельный поток - в нем цикл - получаешь системное время или GetTickCount и делаешь что надо