pascalabcnet/bin/Lib/Timers.pas
Бондарев Иван e6e67c193c initial commit
2015-05-14 21:35:07 +02:00

83 lines
1.8 KiB
ObjectPascal

Unit Timers;
(*
Îáåðòêà äëÿ êëàññà System.Timers.Timer
(c) Áðàãèëåâñêèé Â.Í. 2007
Ñîõðàíåí èíòåðôåéñ êëàññà Timer èç PascalABC
çà èñêëþ÷åíèåì ôóíêöèè Handle.
*)
interface
uses System;
type
/// Êëàññ òàéìåðà
Timer = class
private
_timer: System.Timers.Timer;
_procedure: procedure;
procedure SetEnabled(_enabled: boolean);
function GetEnabled: boolean;
procedure SetInterval(_interval: integer);
function GetInterval: integer;
procedure OnTimer(sender: object; e: System.Timers.ElapsedEventArgs);
public
/// Ñîçäàåò òàéìåð ñ èíòåðâàëîì ñðàáàòûâàíèÿ ms ìèëëèñåêóíä è îáðàáîò÷èêîì TimerProc
constructor Create(ms: integer; TimerProc: procedure);
/// Çàïóñêàåò òàéìåð
procedure Start;
/// Îñòàíàâëèâàåò òàéìåð
procedure Stop;
/// Çàïóùåí ëè òàéìåð
property Enabled: boolean read GetEnabled write SetEnabled;
/// Èíòåðâàë ñðàáàòûâàíèÿ òàéìåðà
property Interval: integer read GetInterval write SetInterval;
end;
implementation
procedure Timer.OnTimer(sender: object; e: System.Timers.ElapsedEventArgs);
begin
_procedure;
end;
constructor Timer.Create(ms: integer; TimerProc: procedure);
begin
_timer := new System.Timers.Timer(ms);
_procedure := TimerProc;
_timer.Elapsed += OnTimer;
end;
procedure Timer.Start;
begin
Enabled := True;
end;
procedure Timer.Stop;
begin
Enabled := False;
end;
procedure Timer.SetEnabled(_enabled: boolean);
begin
_timer.Enabled := _enabled;
end;
function Timer.GetEnabled: boolean;
begin
Result := _timer.Enabled;
end;
procedure Timer.SetInterval(_interval: integer);
begin
_timer.Interval := _interval;
end;
function Timer.GetInterval: integer;
begin
Result := Round(_timer.Interval);
end;
end.