Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit1;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, fptimer, EpikTimer;
- type
- TTestTimer = class(TFPTimer)
- private
- FEpikTimer: TEpikTimer;
- function GetRemaining: cardinal;
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- procedure StartTimer; override;
- procedure StopTimer; override;
- property Remaining: cardinal read GetRemaining;
- end;
- { TForm1 }
- TForm1 = class(TForm)
- Button1: TButton;
- Button2: TButton;
- Label1: TLabel;
- procedure Button1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- private
- FTimer: TTestTimer;
- procedure OnTimer(Sender: TObject);
- public
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.lfm}
- { TForm1 }
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- FTimer := TTestTimer.Create(nil);
- Ftimer.OnTimer := @OnTimer;
- FTimer.StartTimer;
- Label1.Caption := 'Start';
- end;
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- FTimer.StopTimer;
- FreeAndNil(FTimer);
- end;
- procedure TForm1.OnTimer(Sender: TObject);
- begin
- Label1.Caption := 'Stop';
- end;
- { TTestTimer }
- function TTestTimer.GetRemaining: cardinal;
- begin
- Result := Interval - trunc(FEpikTimer.Elapsed * 1000);
- end;
- constructor TTestTimer.Create(AOwner: TComponent);
- begin
- inherited Create(AOwner);
- FEpikTimer := TEpikTimer.Create(self);
- end;
- destructor TTestTimer.Destroy;
- begin
- FEpikTimer.Free;
- inherited Destroy;
- end;
- procedure TTestTimer.StartTimer;
- begin
- FEpikTimer.Clear;
- FEpikTimer.Start;
- inherited StartTimer;
- end;
- procedure TTestTimer.StopTimer;
- begin
- FEpikTimer.Stop;
- inherited StopTimer;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement