![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как описать событие OnTimer в таймере созданым програмно [D7, WinXP]
Pierre © (2006-08-29 01:15:00)Помогити пожилуйста. Пишу шпил и мне необходимо чтобы во время работы проги создавался таймер. Никак немогу правильно сделать описание события OnTimer подскажите как это сделать или хотябы скинте ссылку где прочесть.
P.S.
Я не ленивый просто сроки сдачи проги поджимают и на поиски инфы нет времени. Заранее спасибо всегда ваш Pierre
Ketmar (2006-08-29 09:51:00) [1]> [2] Zeqfreed © (29.08.06 01:27)
ну зачем людей гадостям учишь? вот так и кочует из программы в программу неверный код (см [3]). %-)
Ketmar (2006-08-29 09:51:00) [2]> [5] Ketmar © (29.08.06 09:51)
в смысле -- см. [4]. %-)
begin...end (2006-08-29 08:16:00) [3]> Zeqfreed © (29.08.06 01:27) [2]
Во втором случае процедуру правильнее будет объявить так:
procedure MyOnTimer2( Self,Sender : TObject);
Pierre (2006-08-29 01:48:00) [4]ОГРОМНОЕ СПАСИБО
Ketmar (2006-08-29 01:27:00) [5]ленивый. пока печатал это, мог найти.
в описании класса формы:
procedure TimerHandler (sender: TObject);
после создания таймера:
timer.OnTimer := TimerHandler;
Zeqfreed (2006-08-29 01:27:00) [6]
procedure TForm1.MyOnTimer(Sender: TObject);
begin
Caption := Caption + '.';
if (length(Caption) > 10) then Caption := '';
end;
procedure MyOnTimer2(Sender : TObject);
begin
ShowMessageFmt('%d', [(Sender as TTimer).Tag]);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
m : TMethod;
tmp : TTimer;
begin
with TTimer.Create(Self) do begin
OnTimer := MyOnTimer;
Interval := 1000;
Enabled := true;
end;
tmp := TTimer.Create(Self);
m.Code := @MyOnTimer2;
m.Data := Pointer(tmp);
tmp.OnTimer := TNotifyEvent(m);
tmp.Tag := 5;
tmp.Interval := 5000;
tmp.Enabled := true;
end;