Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.20;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.017 c
2-1257257601
RWolf
2009-11-03 17:13
2009.12.20
VirtualTreeView


15-1256332173
POOP
2009-10-24 01:09
2009.12.20
Как в bat файле выделить текущий каталог?


15-1256014607
@!!ex
2009-10-20 08:56
2009.12.20
Как сделать движущуюся линию на Flash?


1-1228947824
angvelem
2008-12-11 01:23
2009.12.20
C to pascal


15-1255934035
AlexDan
2009-10-19 10:33
2009.12.20
Программисты Европы будут отвечать за свои ошибки