Держи: На форме: Timer1 (нужен он), Edit1 и Edit2 (для ввода первоначальных мин и сек), Label1(для итображения), button1 (для запуска таймера).
| Код | unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;
type TForm1 = class(TForm) Label1: TLabel; Button1: TButton; Edit1: TEdit; Edit2: TEdit; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
t: TTime; // нам нужна эта переменная
implementation
{$R *.dfm}
procedure dosomething; // та самая процедура, каторая будет выполнятся begin ShowMessage('Время вышло'); end;
procedure TForm1.Button1Click(Sender: TObject); begin t:= StrToTime('0:'+Edit1.Text+':'+Edit2.Text); label1.Caption:= '0:'+Edit1.Text+':'+Edit2.Text; Timer1.Enabled:= True; Button1.Enabled:= False; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin if t = 0 then begin Timer1.Enabled:= False; Button1.Enabled:= True; dosomething; end else begin t:= t- StrToTime('0:00:01'); Label1.Caption:= TimeToStr(t); end; end;
end. |
Только вот нужно запретить ввод букв в Edit, а то ошибки будут.
В инспекторе объектов нужно установить Timer1.Enabled:= False; А так, все остальное на твое усмотрение.
PS. Я, по сути, за тебя все зделал. Есть конечно моленькие недороботки, но это уже малочи. Надеюсь помог. |