pascalabcnet/bin/Lib/Timers.pas

83 lines
2 KiB
ObjectPascal
Raw Permalink Normal View History

2015-05-14 22:35:07 +03:00
Unit Timers;
(*
Обертка для класса System.Timers.Timer
(c) Брагилевский В.Н. 2007
2015-05-14 22:35:07 +03:00
Сохранен интерфейс класса Timer из PascalABC
за исключением функции Handle.
2015-05-14 22:35:07 +03:00
*)
interface
uses System;
type
/// Класс таймера
2015-05-14 22:35:07 +03:00
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
2015-05-14 22:35:07 +03:00
constructor Create(ms: integer; TimerProc: procedure);
/// Запускает таймер
2015-05-14 22:35:07 +03:00
procedure Start;
/// Останавливает таймер
2015-05-14 22:35:07 +03:00
procedure Stop;
/// Запущен ли таймер
2015-05-14 22:35:07 +03:00
property Enabled: boolean read GetEnabled write SetEnabled;
/// Интервал срабатывания таймера
2015-05-14 22:35:07 +03:00
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.