Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

Замена таймера   Найти похожие ветки 

 
Raduga   (2003-10-16 13:05) [0]

Здравствуйте.
Как можно сделать, чтобы некоторая процедура периодически вызывалась, не используя компонент TTimer. А то у меня есть свой компонент и в нем процедура, которая будет периодически вызываться если пользователь например щелкнул по компоненту, можно в компонент "всунуть" таймер, но если пользователь создаст их штук 20-30, это ж 20-30 таймеров.


 
DVM ©   (2003-10-16 13:08) [1]

Отдельный поток - в нем цикл - получаешь системное время или GetTickCount и делаешь что надо


 
clickmaker ©   (2003-10-16 13:11) [2]

> Raduga (16.10.03 13:05)

Можно и одним таймером обойтись. Если интервалы разные, то ставить его на минимум и в нем уже проверять, истек ли нужный интервал и запускать соотв. процедуру


 
Raduga   (2003-10-16 13:12) [3]

>clickmaker © (16.10.03 13:11) [2]
Мне надо чтобы компонент был автономным, и не зависел от внешних таймеров


 
DVM ©   (2003-10-16 13:15) [4]


> Мне надо чтобы компонент был автономным, и не зависел от
> внешних таймеров

делай SetTimer() / KillTimer - это апишные функции, сам компонент таймер не нужен.


 
Rouse_ ©   (2003-10-16 13:31) [5]

> но если пользователь создаст их штук 20-30, это ж 20-30
> таймеров

А что Вас здесь смущает, боитесь превысить лимит? Я как понял вы хотите сделать чтоб все экземпляра для таймера использовали один?
Ну тогда сделайте у компонента так:

FTimer: TTimer;

property ExternalTimer read FTimer write SetTimer;

procedure SetTimer(const Value: TTimer);
begin .....

В Ваших компонентах появится свойство ExternalTimer которому можно присвоить любой внешний таймер который будет работать одновременно на все компоненты.

Желаю успехов


 
Raduga   (2003-10-16 14:05) [6]

>Rouse_ © (16.10.03 13:31) [5]

>Я как понял вы хотите сделать чтоб все экземпляра для таймера использовали один?
как раз наоборот, чтобы компонент мог самостоятельно периодически вызывать свой метод.


 
Rouse_ ©   (2003-10-16 14:16) [7]

> мог самостоятельно периодически вызывать свой метод
Но чтобы он был один для всех? Если так я привел пример. А если нет то придется для каждого компонента делать свою реализацию таймера как Вы и собирались делать вначале.

> ...пользователь например щелкнул по компоненту...
но если пользователь создаст их штук 20-30, это ж 20-30
> таймеров

А вы стартуйте таймер только когда он нужен, и когда не нужен приостанавливайте. Да и где это видано чтоб он успел щелкнуть одновременно 20-30 компонентов?

Желаю успехов



Страницы: 1 вся ветка

Текущий архив: 2003.12.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
1-36749
LAMER-XP
2003-12-02 01:06
2003.12.12
Автоматический преход к следующей закладке в PageControl e


1-36718
konstantinov
2003-12-02 00:44
2003.12.12
Оптимизация кода


14-36842
mmmaloy
2003-11-19 14:54
2003.12.12
Шаравары (Shareware)


3-36581
Mikle
2003-11-20 12:22
2003.12.12
Как в Query ограничить число открываемых записей?


3-36566
Goida
2003-11-21 22:40
2003.12.12
Руссификация заголовков таблицы