Вниз
Скачать: CL | DM;

Как передать процедуру на выполнение в Timer.OnTimer?   Найти похожие ветки 

← →
Сергей   (2009-11-03 17:18) [0]

Всем привет.  Динамически создал таймер,
v_Timer:=TTimer.Create(Form1); с интервалом
v_Timer.Interval:=60000; как  в Timer.OnTimer передать процедуру, которая будет выполняться каждые 60 сек.


← →
clickmaker ©   (2009-11-03 17:22) [1]

Timer.OnTimer := TimerOnTimer;
где TimerOnTimer метод формы Form1 с параметром sender: TObject


← →
Плохиш ©   (2009-11-03 17:22) [2]

v_Timer.OnTimer := <нужная процедуре-метод>;


← →
brother ©   (2009-11-04 06:40) [3]

TForm1 = class(TForm)
 ...
 v_Timer: TTimer;
 ...
 procedure OnV_Timer(Sender: TObject);
end;
...
procedure TForm1.OnV_Timer(Sender: TObject);
begin
<все выполняемое в таймере>
end;
...

v_Timer:=TTimer.Create(Form1); с интервалом
v_Timer.Interval:=60000;
v_Timer.OnTimer := OnV_Timer;
...

эхх.. молодежь!)


← →
brother ©   (2009-11-04 07:37) [4]

кстати... когда таймер более не понадобится (например в OnDestroy формы)- уничтожить не забудь:
v_Timer.Free;


← →
Anatoly Podgoretsky ©   (2009-11-04 09:27) [5]

> brother  (04.11.2009 07:37:04)  [4]

Ты что форме не доверяешь?


← →
brother ©   (2009-11-04 11:49) [6]

> Ты что форме не доверяешь?

думаю, привыкать за собой убирать надо с таких вещей...


← →
{RASkov} ©   (2009-11-04 12:04) [7]

> [6] brother ©   (04.11.09 11:49)

если б было v_Timer:=TTimer.Create(nil); - то другое дело
или например owner не nil, но который "живет намного дольше, чем нужно".... пример Application-Owner а объект "лежит" на форме... которая "умирает" во время работы приложения... Но это уже отдельный разговор зачем так делать.


← →
Anatoly Podgoretsky ©   (2009-11-04 12:09) [8]

> brother  (04.11.2009 11:49:06)  [6]

То есть ты сам убираешь все компоненты на форме, абсолютно все и только потом разрушаешь форму?


← →
brother ©   (2009-11-04 12:11) [9]

> То есть ты сам убираешь все компоненты на форме, абсолютно
> все и только потом разрушаешь форму?

конечно нет, но для автора я специально акцентировал внимание на ручное удаление, ибо

> v_Timer:=TTimer.Create(Form1);

будет не всегда, и нужно понимать, что за этим последует...


← →
Anatoly Podgoretsky ©   (2009-11-04 12:28) [10]

Но у тебя то положен на форму в дизайн тайм, значит у тебя еще и утечка, против уничтожения, но тогда надо давать не противоречивый пример, что бы было видно, что это нужно, в данном примере нужно было привести имя секции


← →
brother ©   (2009-11-04 12:31) [11]

> в данном примере нужно было привести имя секции

согласен! поторопился с оформлением ;)


← →
Leonid Troyanovsky ©   (2009-11-04 21:21) [12]


> brother ©   (04.11.09 12:31) [11]

А, вот, нашел интересное место в генофонде (D6):

procedure TTimer.UpdateTimer;
begin
 KillTimer(FWindowHandle, 1);
 if (FInterval <> 0) and FEnabled and Assigned(FOnTimer) then

Допустим, что интервал и FEnabled, но Assigned(FOnTimer) -
это уже перебор.

--
Regards, LVT.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.007 c
2-1257243276
kyn66
2009-11-03 13:14
2009.12.20
Ошибка в коде, который раньше работал.


15-1256128035
interrup+
2009-10-21 16:27
2009.12.20
The New York Times на русском.


15-1255984915
DmitriyG.
2009-10-20 00:41
2009.12.20
Кто каким средством пользуется для создания Help?


15-1255874210
POOP
2009-10-18 17:56
2009.12.20
Что называют диаметром линзы?


2-1257311762
uMain
2009-11-04 08:16
2009.12.20
Мультиязычность




   Наверх