Форум: "Начинающим";
Текущий архив: 2009.12.20;
Скачать: [xml.tar.bz2];
Вниз
Как передать процедуру на выполнение в 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c