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

Вниз

Timer   Найти похожие ветки 

 
Pavel   (2004-03-30 01:06) [0]

Как создать свой таймер и обработчик события для него ?

Var
Timer:TTimer;

begin
 Timer:=TTimer.Create(Timer);
 Timer.Interval:=100;
 Timer.Enabled:=True;
 Timer.Ontimer:= { что псать дальше ? }
end;


 
Andy BitOff ©   (2004-03-30 02:12) [1]

>Timer:=TTimer.Create(Timer);
???????
TTimer - F1 - Methods - Create:
AOwner specifies the component, typically a form or data module, that is responsible for freeing the timer.


 
Defunct ©   (2004-03-30 08:02) [2]

Pavel   (30.03.04 01:06)  

Что мешает просто кинуть таймер на форму, настроить в Object Inspector, и по двойному клику открыть обработчик OnTimer и описать в нем все, что надо.


 
Рамиль ©   (2004-03-30 09:12) [3]

begin
Timer:=TTimer.Create(Self);
Timer.Interval:=100;
Timer.Ontimer:= MyTimerProc;
Timer.Enabled:=True;
end;

где MyTimerProc - метод формы типа TNotifyEvent.


 
Pavel   (2004-03-30 09:30) [4]

Andy BitOff ©
Что, собственно вам не нравится в Timer:=TTimer.Create(Timer); it"s typically a form но не обязательно.

Defunct ©

То, что формы нету.


> где MyTimerProc - метод формы типа TNotifyEvent.


В том то и вопрос, как описать етот "метод формы".


 
Семен Сорокин ©   (2004-03-30 10:34) [5]

2Pavel  
1. вытащи свой TTimer в какой-нибудь класс.
2. используй TimeSetEvent


 
Pavel   (2004-03-30 14:35) [6]

Ладно задам вопрос по другому. Как присвоить OnTimer какуюнибудь процедуру????????

type
 MTimer = class(TTimer)
 public
 FOnTimer:TNotifyEvent;
 property OnTimer: TNotifyEvent write FOnTimer;
end;

Думал вместо FOnTimer подставить процедуру но он не принимает.


 
Anatoly Podgoretsky ©   (2004-03-30 14:39) [7]

Никак, это должен быть метод, а не процедура.


 
Семен Сорокин ©   (2004-03-30 14:44) [8]

Pavel   (30.03.04 14:35) [6]
например так:
type
 TMyClass = class
 private
   FTimer : TTimer;
   procedure TimerTimer(Sender: TObject);
 public
   constructor Create(AInerval: integer);
   destructor Destroy; override;
 end;

constructor TMyClass.Create(AInterval: integer);
begin
FTimer := TTimer.Create(nil);
FTimer.Interval := AInterval;
FTimer.OnTimer := TimerTimer;
FTimer.Enabled := true
end;

destructor TMyClass.Destroy;
begin
FTimer.Enabled := false;
FTimer.Free
end;

procedure TMyClass.TimerTimer(Sender: TObject);
begin
// твои действия
end;


 
KSergey ©   (2004-03-30 14:46) [9]

http://www.delphikingdom.com/helloworld/runtime_comp.htm


 
Pavel   (2004-03-30 14:59) [10]

type
 MTimer = class(TTimer)
 public
 FOnTimer:TNotifyEvent;
 procedure Go(Sender:TNotifyEvent);
 property OnTimer: TNotifyEvent read FOnTimer write Go;
end;

procedure MTimer.Go;
begin
 form1.Memo1.Lines.Add("1");
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer:=MTimer.Create(Timer);
Timer.Interval:=100;
Timer.Enabled:=True;
end;

Почему такой код не работает ?


 
Семен Сорокин ©   (2004-03-30 15:02) [11]

Pavel   (30.03.04 14:59) [10]
Почему такой код не работает ?

а почему он должен работать?


 
Anatoly Podgoretsky ©   (2004-03-30 15:05) [12]

Не назначен обработчик.


 
Pavel   (2004-03-30 15:26) [13]

Как его назначить ?


 
Pavel   (2004-03-30 15:31) [14]

Thnx to Семен Сорокин ©  код очень помог.


 
KSergey ©   (2004-03-30 15:31) [15]

>  [13] Pavel   (30.03.04 15:26)
> Как его назначить ?

А это для кого было написано?

> [9] KSergey ©   (30.03.04 14:46)
http://www.delphikingdom.com/helloworld/runtime_comp.htm



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

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

Наверх




Память: 0.49 MB
Время: 0.036 c
14-1080481951
Myrs
2004-03-28 17:52
2004.04.18
Несобственный интеграл


1-1080977714
Arturchik
2004-04-03 11:35
2004.04.18
Как вычесть TSystemTime из TSystemTime и получить разницу...


14-1080424671
kdd
2004-03-28 00:57
2004.04.18
Delphi 8


8-1072525789
Otez
2003-12-27 14:49
2004.04.18
Запись AVI файла


14-1080014499
Романов Р.В.
2004-03-23 07:01
2004.04.18
Опрос - Инструменты программиста