Как переписать код чтобы был (будильник)

Написал код на Лазарусе, сделал таймер, сейчас нужно переделать код под будильник подскажите как сделать?

    unit unit2;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,
  EditBtn, MMSystem;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Memo1: TMemo;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer1StartTimer(Sender: TObject);
    procedure Timer1StopTimer(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;
  i:Integer;
  g:Integer;
  S:AnsiString;

implementation

{$R *.lfm}

{ TForm1 }



procedure TForm1.Button1Click(Sender: TObject);
begin
  try
   Timer1StartTimer(Sender);
   g:= StrToInt(Edit1.Text);
   while g>=0 do Timer1Timer(Sender);
   Timer1StopTimer(Sender);
   except
   ShowMessage('Введите значение в секундах');
  end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  sndPlaySound('budilnik.wav', snd_Async or snd_NoDefault);
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin

end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

procedure TForm1.Timer1StartTimer(Sender: TObject);
begin
   Memo1.Lines.Add('Start');
end;

procedure TForm1.Timer1StopTimer(Sender: TObject);
begin
  if g < 0 then
  Timer1.Enabled:=False;
  Memo1.Lines.Add('End');
  Button2Click(Sender);

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   Memo1.Lines.Add(' Осталось ' + IntToStr (g) + ' секунд ');
   Memo1.Lines.Clear;
   Sleep(500);
   g:= g - 1;

end;

end.

Ответы (0 шт):