Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо