![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TTimer в API приложении.
Mazenrat © (2002-09-16 15:36:00)Привет.
Как в приложении на чистом API использовать TTimer, организовать событие OnTimer? Если у кого-то есть пример, пожалуйста, представьте.
REA (2002-09-16 16:51:00) [1]Исходник в Delphi как раз и есть. Они не сильно будут отличаться.
Kaban (2002-09-16 16:09:00) [2]var
iTimers : Integer = 0;
Kaban (2002-09-16 16:00:00) [3]unit WinTimer;
interface
uses Windows, Classes;
type
TWinTimer=class
Parent:integer;
constructor Create(hParent:integer);
destructor Destroy; override;
private
TimerID:integer;
FInterval:integer;
FEnabled:boolean;
procedure SetEnabled(b:boolean);
procedure SetInterval(i:integer);
published
property Enabled:boolean read FEnabled write SetEnabled;
property Interval:integer read FInterval write SetInterval;
End;
var
iTimers : Integer;
implementation
constructor TWinTimer.Create(hParent:integer);
begin
FInterval:=1000;
Parent:=hParent;
FEnabled:=false;
Inc(iTimers);
TimerID:=iTimers
end;
procedure TWinTimer.SetEnabled(b:boolean);
begin
If FEnabled=b Then Exit;
FEnabled:=b;
If b Then
SetTimer(Parent,TimerID,FInterval,nil)
Else
KillTimer(Parent,TimerID)
end;
procedure TWinTimer.SetInterval(i:integer);
begin
If FInterval=i Then Exit;
FInterval:=i;
If NOT FEnabled Then Exit;
KillTimer(Parent,TimerID);
SetTimer(Parent,TimerID,i,nil)
end;
destructor TWinTimer.Destroy;
begin
KillTimer(Parent,TimerID)
end;
end.
Xemax (2002-09-16 15:49:00) [4]пусть твой обработчик сообщений обрабатывает WM_TIMER.